Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 19 Sep 2022 16:21:45 -0400
From: Rich Felker <dalias@...c.org>
To: libc-coord@...ts.openwall.com
Subject: EAI_NOADDR ?

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?

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.