* sysdeps/posix/getaddrinfo.c (getaddrinfo): Add _res_hconf_init
authorUlrich Drepper <drepper@redhat.com>
Wed, 14 May 2008 21:53:48 +0000 (21:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 14 May 2008 21:53:48 +0000 (21:53 +0000)
if necessary.

ChangeLog
sysdeps/posix/getaddrinfo.c

index aa1cbdc..5a06103 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-05-14  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/posix/getaddrinfo.c (getaddrinfo): Add _res_hconf_init
+       if necessary.
+
        * sysdeps/posix/getaddrinfo.c: Implement handling of DCCP, UDPlite,
        and SCTP.
 
index 0ae4393..c8965ef 100644 (file)
@@ -61,6 +61,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <not-cancel.h>
 #include <nscd/nscd-client.h>
 #include <nscd/nscd_proto.h>
+#include <resolv/res_hconf.h>
 
 #ifdef HAVE_LIBIDN
 extern int __idna_to_ascii_lz (const char *input, char **output, int flags);
@@ -2089,6 +2090,10 @@ 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;