Resolver Issues (non valid hostname characters)

Terry Lambert tlambert2 at mindspring.com
Wed Mar 26 02:49:17 PST 2003


Mark.Andrews at isc.org wrote:
> David J Duchscher <daved at nostrum.com> wrote:
> > It should be noted that this limitation was in RFC952 which is not a DNS
> > specification. See RFC2181. I think our implementation is simply
> > broken.
> 
>         gethostby*(), get*info() all talk RFC 952.  They use the
>         DNS as a database to store records in as they use /etc/hosts
>         and NIS.  gethostbyaddr() and gethostinfo() should not be
>         returning names that don't comply to RFC 952.
> 
>         Like most people you are confusing hostnames and domainnames.
>         The are NOT the same things.  They are in fact overlapping
>         sets.  There are legal hostnames that cannot be stored in
>         the DNS and the are domainnames that are not hostnames.
> 
>         Checking the results returned from a public database is
>         good engineering practice.  NIS and /etc/hosts are local
>         databases and can be assumed to be correct.

Exactly.  What Mark said.

This will take a lot of code to correct.  AFAIK, there is no usable
reference implementation for a non RFC-952 restricted resolver
library API, nor is there implementation in most intermediate DNS
servers, which are consumers of such a library, in order to allow
caching-only and slit horizon ("border") DNS servers to do such
lookups through such a library, and then internalize the results.

I'm sure if someone wanted to step forward and write the code,
a lot of OS's would be happy to take it from them.

So far, however, RFC-952 has not yet been obsoleted by anything
but drafts (see other posting for the reference pointers to IDN).

Further, there are complex issues involved in modifying OS
libraries, some of them specific to FreeBSD's lack of kernel
threads support at the current time, and some of them related
to FreeBSD's organizational issues, and some of them related
to nothing more than FreeBSD politics.

The most damning thing, though, is the total lack of interface
definitions by standards bodies, such as X/Open or POSIX.  Without
these, it's not *possible* to implement a conforming implementation
of the code, and any code you do implement is not likely to be
conformant to any final standard, unless you place it in the public
domain, or under multiple licenses, granted in perpetuity, so that
all commercial OS vendors, the BSD's, and the Linux's, can pick it
up and *make it* the defacto standard.

-- Terry


More information about the freebsd-stable mailing list