[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Who does what (Re: [idn] San Diego Meeting Notes)
> What is the opinion of the working group on IDNA vs. IDNRA? Paul and
> Patrik have proposed two alternative ACE implementation approaches: IDNRA
> calls for an application and resolver-based approach, putting most of the
> IDN work in the resolver, while IDNA calls for an application-only approach.
I don't think there's much difference between the two; IDNA is just a
cleaner way of expressing what would end up as more-or-less the same
architecture as IDNRA. Here's why:
- since ACEs are compatible with ASCII domain names, a resolver API
that accepts and returns ACEs already exists; it's not going to
go away anytime soon even if other resolver APIs accepting and/or
returning UTF-8 were to appear.
even if the resolver API always accepts and returns ACE, there will
inevitably be wrapper routines around the resolver which perform
simple kinds of lookups and which accept and/or return UTF-8.
so either way, we'll have one interface that deals in terms of ACE
and another that deals in terms of UTF-8. the only real question
is the degree to which the latter interface will be consistent across
different platforms. if not, folks writing portable software
will need to supply their own conversion routines. however, the
algorithms (and probably code) to do this will be published, so
even this isn't a huge barrier.
- many applications will need to compare IDNs with one another for
equivalence. for reasons of backward compatibility they will see
both ACE IDNs and UTF-8 IDNs, and they'll have to know whether
they are equivalent. in addition, applications will have to
convert from UTF-8 format to ACE when IDNs are used as elements
in protocols which do not (yet?) tolerate non-ascii DNS names,
and they'll have to convert from ACE to UTF-8 for display.
so either way, there will need to be direct access to the nameprep
and ACE<->UTF-8 conversion routines. they cannot merely be embedded
in the resolver API.
so either way, you have pretty much the same set of interfaces, and
the same kind of layering.
Keith