about summary refs log tree commit diff
path: root/sysdeps/posix/getaddrinfo.c
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2014-05-15 12:33:11 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2014-05-15 12:33:11 +0530
commitcf26a0cb6a0bbaca46a01ddad6662e5e5159a32a (patch)
treee35a017c56bf53210467f323f037436b3cc9f5ab /sysdeps/posix/getaddrinfo.c
parenta5d87b3db4f40a0f07e41f1986ac7f330743a0e7 (diff)
downloadglibc-cf26a0cb6a0bbaca46a01ddad6662e5e5159a32a.tar.gz
glibc-cf26a0cb6a0bbaca46a01ddad6662e5e5159a32a.tar.xz
glibc-cf26a0cb6a0bbaca46a01ddad6662e5e5159a32a.zip
Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849)
getaddrinfo correctly returns EAI_AGAIN for AF_INET and AF_INET6
queries.  For AF_UNSPEC however, an older change
(a682a1bf553b1efe4dbb03207fece5b719cec482) broke the check and due to
that the returned error was EAI_NONAME.

This patch fixes the check so that a non-authoritative not-found is
returned as EAI_AGAIN to the user instead of EAI_NONAME.
Diffstat (limited to 'sysdeps/posix/getaddrinfo.c')
-rw-r--r--sysdeps/posix/getaddrinfo.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 6258330759..8f392b9678 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -867,8 +867,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
 		      if (status != NSS_STATUS_TRYAGAIN
 			  || rc != ERANGE || herrno != NETDB_INTERNAL)
 			{
-			  if (status == NSS_STATUS_TRYAGAIN
-			      && herrno == TRY_AGAIN)
+			  if (herrno == TRY_AGAIN)
 			    no_data = EAI_AGAIN;
 			  else
 			    no_data = herrno == NO_DATA;