Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 19 Sep 2022 17:51:33 -0400
From: Rich Felker <>
Subject: Re: EAI_NOADDR ?

On Mon, Sep 19, 2022 at 10:57:55PM +0200, Florian Weimer wrote:
> * Rich Felker:
> > One problem I've seen come up again and again with libc stub resolver
> > API is that there's no way to distinguish between NxDomain and NODATA
> > responses from DNS. These have very different meanings ("name doesn't
> > exist" vs "name exists but has no address (or whatever record type you
> > were looking for") and being able to distinguish them is important for
> > implementing containerized-type DNS service on top of the host's
> > resolver API rather than direct proxying to outside DNS (when the
> > latter isn't desirable).
> >
> > POSIX defines EAI_NONAME as:
> >
> >     The name does not resolve for the supplied parameters. 
> >
> > which, under generous interpretation of "parameters", seems to cover
> > both cases, although arguably it does "resolve" to just an empty list
> > of addresses in the NODATA case.
> >
> > To address this, I'm considering proposing a new error code EAI_NOADDR
> > that would be defined something like:
> >
> >     The name does not have any addresses for the supplied parameters.
> >
> > Would other implementators be on-board with such a proposal?
> I think several libcs implemented this as EAI_NODATA already.  I see it
> documented for AIX, glibc, NetBSD, OpenBSD, QNX, Solaris.  Apparently,
> it's absent from FreeBSD (and Windows).

Oh, perfect! In that case, can we push this for standardization?

And, it looks like glibc also defines EAI_ADDRFAMILY with somewhat
overlapping meaning. Is there good documentation for how they're
distinguished? I don't think you can meaningfully choose which to
return unless you query both A and AAAA even when only one was


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.