Index: net/getnameinfo.c =================================================================== RCS file: /cvsroot/src/lib/libc/net/getnameinfo.c,v retrieving revision 1.57 diff -u -u -r1.57 getnameinfo.c --- net/getnameinfo.c 3 Sep 2015 15:01:19 -0000 1.57 +++ net/getnameinfo.c 22 Sep 2015 14:33:27 -0000 @@ -64,6 +64,7 @@ #include <netinet/in.h> #include <arpa/inet.h> #include <arpa/nameser.h> +#include <stdlib.h> #include <assert.h> #include <limits.h> #include <netdb.h> @@ -404,8 +405,21 @@ } strlcpy(host, hp->h_name, hostlen); } else { - if (flags & NI_NAMEREQD) - return EAI_NONAME; + switch (he) { + case NETDB_INTERNAL: + case NO_RECOVERY: + return EAI_SYSTEM; + case NO_DATA: + case HOST_NOT_FOUND: + if (flags & NI_NAMEREQD) + return EAI_NONAME; + break; + case TRY_AGAIN: + return EAI_AGAIN; + case NETDB_SUCCESS: + default: + abort(); + } switch(afd->a_af) { #ifdef INET6 case AF_INET6: