From: Ulrich Drepper Date: Sun, 18 Jul 1999 17:31:43 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/pre-glibc-2_1_3~627 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ae81730fad7e41f2eb348c62a778d10136073791;p=platform%2Fupstream%2Fglibc.git Update. 1999-07-18 Ulrich Drepper * 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. --- diff --git a/ChangeLog b/ChangeLog index ead6b57..ade1935 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +1999-07-18 Ulrich Drepper + + * 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 * nscd/nscd_proto.h (__nscd_gethostbyaddr_r): Follow change from diff --git a/inet/gethstbyad_r.c b/inet/gethstbyad_r.c index 366cd55..137bdf9 100644 --- a/inet/gethstbyad_r.c +++ b/inet/gethstbyad_r.c @@ -18,6 +18,7 @@ Boston, MA 02111-1307, USA. */ #include +#include #define LOOKUP_TYPE struct hostent @@ -28,6 +29,17 @@ #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) \ { \ diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index a54ae67..a9ce901 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -49,6 +49,10 @@ |* 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'. */