fetch: support EAI_ADDRFAMILY error, correct two error messages

With the change to return EAI_ADDRFAMILY from getaddrinfo(), fetch
would print "Unknown resolver error" for that error.  Add that error
and its string to libfetch's table, using an #ifdef just in case.
Correct error strings for EAI_NODATA (although it is currently unused)
and EAI_NONAME.  Should maybe rework the code to use gai_strerror(3),
but that doesn't map directly, and the current strings are shortened.

Reviewed in https://reviews.freebsd.org/D37139 with related changes.

Reviewed by:    bz
MFC after:      1 month
This commit is contained in:
Mike Karels 2022-11-02 10:59:09 -05:00
parent 1443613866
commit 631b82aca0

View file

@ -67,12 +67,15 @@ __FBSDID("$FreeBSD$");
* Error messages for resolver errors
*/
static struct fetcherr netdb_errlist[] = {
#ifdef EAI_ADDRFAMILY
{ EAI_ADDRFAMILY, FETCH_RESOLV, "Address family for host not supported" },
#endif
#ifdef EAI_NODATA
{ EAI_NODATA, FETCH_RESOLV, "Host not found" },
{ EAI_NODATA, FETCH_RESOLV, "No address for host" },
#endif
{ EAI_AGAIN, FETCH_TEMP, "Transient resolver failure" },
{ EAI_FAIL, FETCH_RESOLV, "Non-recoverable resolver failure" },
{ EAI_NONAME, FETCH_RESOLV, "No address record" },
{ EAI_NONAME, FETCH_RESOLV, "Host does not resolve" },
{ -1, FETCH_UNKNOWN, "Unknown resolver error" }
};