Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 18 Jul 1999 17:31:43 +0000 (17:31 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 18 Jul 1999 17:31:43 +0000 (17:31 +0000)
1999-07-18  Ulrich Drepper  <drepper@cygnus.com>

* inet/gethstbyad_r.c (PREPROCESS): Test for unspecified IPv6 address
and return an error in this case.
* nss/getXXbyYY_r.c: Allow PREPROCESS be defined and use it if
available.

ChangeLog
inet/gethstbyad_r.c
nss/getXXbyYY_r.c

index ead6b57..ade1935 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+1999-07-18  Ulrich Drepper  <drepper@cygnus.com>
+
+       * inet/gethstbyad_r.c (PREPROCESS): Test for unspecified IPv6 address
+       and return an error in this case.
+       * nss/getXXbyYY_r.c: Allow PREPROCESS be defined and use it if
+       available.
+
 1999-07-18  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
 
        * nscd/nscd_proto.h (__nscd_gethostbyaddr_r): Follow change from
index 366cd55..137bdf9 100644 (file)
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <netdb.h>
+#include <string.h>
 
 
 #define LOOKUP_TYPE    struct hostent
 #define NEED_H_ERRNO   1
 #define NEED__RES      1
 #define NEED__RES_HCONF        1
+/* If the addr parameter is the IPv6 unspecified address no query must
+   be performed.  */
+#define PREPROCESS \
+  if (__builtin_expect (len == sizeof (struct in6_addr)                              \
+                       && memcmp (&in6addr_any, addr,                        \
+                                  sizeof (struct in6_addr)) == 0, 0))        \
+    {                                                                        \
+      *h_errnop = HOST_NOT_FOUND;                                            \
+      *result = NULL;                                                        \
+      return ENOENT;                                                         \
+    }
 #define POSTPROCESS \
   if (status == NSS_STATUS_SUCCESS)                                          \
     {                                                                        \
index a54ae67..a9ce901 100644 (file)
 |* NEED__RES     - the global _res variable might be used so we           *|
 |*                will have to initialize it if necessary         *|
 |*                                                                *|
+|* PREPROCESS    - code run before anything else                  *|
+|*                                                                *|
+|* POSTPROCESS   - code run after the lookup                      *|
+|*                                                                *|
 \*******************************************************************/
 
 /* To make the real sources a bit prettier.  */
@@ -115,6 +119,10 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
   int nscd_status;
 #endif
 
+#ifdef PREPROCESS
+  PREPROCESS;
+#endif
+
 #ifdef HANDLE_DIGITS_DOTS
   /* We have to test for the use of IPv6 which can only be done by
      examining `_res'.  */