Date: Mon, 19 Sep 2022 22:57:55 +0200 From: Florian Weimer <fweimer@...hat.com> To: Rich Felker <dalias@...c.org> Cc: libc-coord@...ts.openwall.com Subject: Re: EAI_NOADDR ? * 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: > > [EAI_NONAME] > 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: > > [EAI_NOADDR] > 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). Thanks, Florian
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.