* sysdeps/posix/getaddrinfo.c: Move _res_hconf_init call to a
authorUlrich Drepper <drepper@redhat.com>
Fri, 13 Jun 2008 23:35:47 +0000 (23:35 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 13 Jun 2008 23:35:47 +0000 (23:35 +0000)
better place so it is not called when nscd is used.

ChangeLog
sysdeps/posix/getaddrinfo.c

index 28c67c0..70017e5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-06-13  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/posix/getaddrinfo.c: Move _res_hconf_init call to a
+       better place so it is not called when nscd is used.
+
        * nscd/connections.c: Also recognize and handle changes to the
        resolver configuration file.
 
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)