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: