Updated to fedora-glibc-20080703T1203
[kopensolaris-gnu/glibc.git] / sysdeps / posix / getaddrinfo.c
index 5c82b52..4987505 100644 (file)
@@ -684,6 +684,9 @@ gaih_inet (const char *name, const struct gaih_service *service,
                                             "dns [!UNAVAIL=return] files",
                                             &nip);
 
+         /* Initialize configurations.  */
+         if (__builtin_expect (!_res_hconf.initialized, 0))
+           _res_hconf_init ();
          if (__res_maybe_init (&_res, 0) == -1)
            no_more = 1;
 
@@ -883,9 +886,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
        }
     }
 
-  if (pai == NULL)
-    return 0;
-
   {
     struct gaih_servtuple *st2;
     struct gaih_addrtuple *at2 = at;
@@ -2091,10 +2091,6 @@ getaddrinfo (const char *name, const char *service,
   if ((hints->ai_flags & AI_CANONNAME) && name == NULL)
     return EAI_BADFLAGS;
 
-  /* Initialize configurations.  */
-  if (__builtin_expect (!_res_hconf.initialized, 0))
-    _res_hconf_init ();
-
   struct in6addrinfo *in6ai = NULL;
   size_t in6ailen = 0;
   bool seen_ipv4 = false;
@@ -2149,11 +2145,7 @@ getaddrinfo (const char *name, const char *service,
   else
     pservice = NULL;
 
-  struct addrinfo **end;
-  if (pai)
-    end = &p;
-  else
-    end = NULL;
+  struct addrinfo **end = &p;
 
   unsigned int naddrs = 0;
   if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
@@ -2167,12 +2159,11 @@ getaddrinfo (const char *name, const char *service,
 
          return -(last_i & GAIH_EAI);
        }
-      if (end)
-       while (*end)
-         {
-           end = &((*end)->ai_next);
-           ++nresults;
-         }
+      while (*end)
+       {
+         end = &((*end)->ai_next);
+         ++nresults;
+       }
     }
   else
     {
@@ -2368,9 +2359,6 @@ getaddrinfo (const char *name, const char *service,
       return 0;
     }
 
-  if (pai == NULL && last_i == 0)
-    return 0;
-
   return last_i ? -(last_i & GAIH_EAI) : EAI_NONAME;
 }
 libc_hidden_def (getaddrinfo)