[PATCH] Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849)

Siddhesh Poyarekar siddhesh@redhat.com
Wed Apr 16 14:07:00 GMT 2014


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.

Tested on x86_64.

Siddhesh

	[BZ #16849]
	* sysdeps/posix/getaddrinfo.c (gaih_inet): Only check for
	herrno to return EAI_AGAIN.

---
 sysdeps/posix/getaddrinfo.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 3385bed..f62df19 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -863,8 +863,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;
-- 
1.8.3.1

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20140416/f3c99031/attachment.sig>


More information about the Libc-alpha mailing list