Bare TLD resolutions

Mark Andrews marka at
Wed Sep 17 21:39:08 UTC 2014

In message <20140917211336.GT89960 at>, Andrew Sullivan writes:
> On Wed, Sep 17, 2014 at 04:57:52PM -0400, Jay Ashworth wrote:
> > ----- Original Message -----
> > No, I was confusing you for someone who understood -- as everyone else
> > here seems to have -- that I meant "querying for an A, AAAA, or MX 
> > record".
> You want to return NXDOMAIN for a name only when the QTYPE is A, AAAA,
> or MX, and not everything else?  Presumably you don't want to do
> negative caching?  
> A
> -- 
> Andrew Sullivan
> Dyn, Inc.
> asullivan at
> v: +1 603 663 0448

You want gethostbyname, getaddrinfo to return HOST_NOT_FOUND/EAI_NONAME
if a single label is entered and is not matched by
<label>.<search-list-element>.  localhost is special cased.

You want res_search() to return  HOST_NOT_FOUND if a single label
is entered and is not matched by <label>.<search-list-element>.

You want res_query() and other tools that look in the DNS and are
*not* searching to return whatever is in the DNS.

If you have a new interface that looks for SRV records you want
that to fail if <srv-prefix>.<label>.<search-list-element> is not
found unless searching is explictly disabled.  This allows for
things like "_whois._tcp.tld SRV ...." to work.

Search lists are for hosts and host like things.  Resolver libraries
have different interfaces for different purposes.  Single label
hostnames for reaching non local equipment was deliberately phase
out in the 1980's as it was clearly a bad concept.

Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at

More information about the NANOG mailing list