summary refs log tree commit diff
path: root/nss/getXXbyYY.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-01-21 21:23:21 +0000
committerUlrich Drepper <drepper@redhat.com>2001-01-21 21:23:21 +0000
commita5fdf99b7c4d23acbc3d3f77f6c4d4456ff6006f (patch)
tree50505d8e5c6d5e9a45cffa622461612d11fc369c /nss/getXXbyYY.c
parentdf18ec9afef6afd29c3b19bccec35e4dbe4563bf (diff)
downloadglibc-a5fdf99b7c4d23acbc3d3f77f6c4d4456ff6006f.tar.gz
glibc-a5fdf99b7c4d23acbc3d3f77f6c4d4456ff6006f.tar.xz
glibc-a5fdf99b7c4d23acbc3d3f77f6c4d4456ff6006f.zip
Update.
2000-12-09  H.J. Lu  <hjl@gnu.org>

	* nss/Makefile (routines): Add digits_dots.
	* nss/Versions (libc): Add __nss_hostname_digits_dots to GLIBC_2.2.2.
	* nss/digits_dots.c (__nss_hostname_digits_dots): Turn template
	into a function.
	* nss/nsswitch.h (__nss_hostname_digits_dots): New internal NSS
	function.
	* nss/getXXbyYY.c (H_ERRNO_VAR_P): New definition.
	(TYPE_VAR_P): Likewise.
	(FLAGS_VAR): Likewise.
	(AF_VAR_P): Likewise.
	(INTERNAL (REENTRANT_NAME)): Call __nss_hostname_digits_dots ()
	instead of including digits_dots.c.
	* nss/getXXbyYY_r.c (H_ERRNO_VAR_P): New definition.
	(TYPE_VAR_P): Likewise.
	(FLAGS_VAR): Likewise.
	(AF_VAR_P): Likewise.
	(INTERNAL (REENTRANT_NAME)): Call __nss_hostname_digits_dots ()
	instead of including digits_dots.c.
Diffstat (limited to 'nss/getXXbyYY.c')
-rw-r--r--nss/getXXbyYY.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c
index ebddb98d08..7dfd71f7d9 100644
--- a/nss/getXXbyYY.c
+++ b/nss/getXXbyYY.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -59,11 +59,23 @@
 #ifdef NEED_H_ERRNO
 # define H_ERRNO_PARM , int *h_errnop
 # define H_ERRNO_VAR , &h_errno_tmp
+# define H_ERRNO_VAR_P &h_errno_tmp
 #else
 # define H_ERRNO_PARM
 # define H_ERRNO_VAR
+# define H_ERRNO_VAR_P NULL
 #endif
 
+#ifndef HAVE_TYPE
+# define TYPE_VAR_P NULL
+# define FLAGS_VAR 0
+#endif
+
+#ifdef HAVE_AF
+# define AF_VAR_P &af
+#else
+# define AF_VAR_P NULL
+#endif
 
 /* Prototype for reentrant version we use here.  */
 extern int INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf,
@@ -86,9 +98,6 @@ FUNCTION_NAME (ADD_PARAMS)
   int save;
 #ifdef NEED_H_ERRNO
   int h_errno_tmp = 0;
-# ifdef HANDLE_DIGITS_DOTS
-  int *const h_errnop = &h_errno_tmp;;
-# endif
 #endif
 
   /* Get lock.  */
@@ -100,22 +109,17 @@ FUNCTION_NAME (ADD_PARAMS)
       buffer = malloc (buffer_size);
     }
 
+#ifdef HANDLE_DIGITS_DOTS
   if (buffer != NULL)
     {
-#ifdef HANDLE_DIGITS_DOTS
-      /* We have to test for the use of IPv6 which can only be done by
-	 examining `_res'.  */
-      if ((_res.options & RES_INIT) == 0 && __res_ninit (&_res) == -1)
-	{
-# ifdef NEED_H_ERRNO
-	  h_errno_tmp = NETDB_INTERNAL;
-# endif
-	  result = NULL;
-	  goto done;
-	}
-# include "digits_dots.c"
-#endif
+      if (__nss_hostname_digits_dots (name, &resbuf, &buffer,
+				      &buffer_size,
+				      0, &result, NULL, TYPE_VAR_P,
+				      FLAGS_VAR, AF_VAR_P,
+				      H_ERRNO_VAR_P))
+	goto done;
     }
+#endif
 
   while (buffer != NULL
 	 && (INTERNAL (REENTRANT_NAME) (ADD_VARIABLES, &resbuf, buffer,