about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/posix/getaddrinfo.c14
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ea6c28c9e..07c5e5c27f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-08-21  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/posix/getaddrinfo.c (gethosts): Handle TRY_AGAIN error
+	of gethostbyname2_r call.
+
 	* intl/locale.alias: Add aliases for Korean.
 
 2000-08-21  Martin Schwidefsky  <schwidefsky@de.ibm.com>
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 45d1da22f9..17d27e786e 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -266,10 +266,18 @@ gaih_inet_serv (const char *servicename, struct gaih_typeproto *tp,
     rc = __gethostbyname2_r (name, _family, &th, tmpbuf,	\
          tmpbuflen, &h, &herrno);				\
   } while (rc == ERANGE && herrno == NETDB_INTERNAL);		\
-  if (rc != 0 && herrno == NETDB_INTERNAL)			\
+  if (rc != 0)							\
     {								\
-      __set_h_errno (herrno);					\
-      return -EAI_SYSTEM;					\
+      if (herrno == NETDB_INTERNAL)				\
+	{							\
+	  __set_h_errno (herrno);				\
+	  return -EAI_SYSTEM;					\
+	}							\
+      if (herrno == TRY_AGAIN)					\
+	{							\
+	  __set_h_errno (herrno);				\
+	  return -EAI_AGAIN;					\
+	}							\
     }								\
   if (h != NULL)						\
     {								\