From 9e56c380bce196b1e66fbed5c6684776f86307db Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 19 Jan 2000 00:10:36 +0000 Subject: Update. * nscd/connections.c (dbs): Use PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP for .lock. Pretty printing. * nscd/hstcache.c (cache_addhst): Don't automatically add IPv6 address. Suggested by Philip Blundell. --- nscd/hstcache.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) (limited to 'nscd/hstcache.c') diff --git a/nscd/hstcache.c b/nscd/hstcache.c index b8a80af..a2f8115a 100644 --- a/nscd/hstcache.c +++ b/nscd/hstcache.c @@ -1,5 +1,5 @@ /* Cache handling for host lookup. - Copyright (C) 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -30,13 +30,11 @@ #include #include #include +#include #include "nscd.h" #include "dbg_log.h" -/* Get implementation for some internal functions. */ -#include "../resolv/mapv4v6addr.h" - /* This is the standard reply in case the service is disabled. */ static const hst_response_header disabled = @@ -160,8 +158,8 @@ cache_addhst (struct database *db, int fd, request_header *req, void *key, + h_name_len + h_aliases_cnt * sizeof (size_t) + h_addr_list_cnt * (hst->h_length - + (hst->h_length == INADDRSZ - ? IN6ADDRSZ : 0))); + + (hst->h_length == NS_INADDRSZ + ? NS_IN6ADDRSZ : 0))); data = (struct hostdata *) malloc (total + req->key_len); if (data == NULL) @@ -186,14 +184,6 @@ cache_addhst (struct database *db, int fd, request_header *req, void *key, for (cnt = 0; cnt < h_addr_list_cnt; ++cnt) cp = mempcpy (cp, hst->h_addr_list[cnt], hst->h_length); - /* And the generated IPv6 addresses if necessary. */ - if (hst->h_length == INADDRSZ) - { - /* Generate the IPv6 addresses. */ - for (cnt = 0; cnt < h_addr_list_cnt; cp += IN6ADDRSZ, ++cnt) - map_v4v6_address (hst->h_addr_list[cnt], cp); - } - /* Then the aliases. */ aliases = cp; for (cnt = 0; cnt < h_aliases_cnt; ++cnt) @@ -214,7 +204,7 @@ cache_addhst (struct database *db, int fd, request_header *req, void *key, unnecessarily let the receiver wait. */ written = write (fd, data, total); - addr_list_type = (hst->h_length == INADDRSZ + addr_list_type = (hst->h_length == NS_INADDRSZ ? GETHOSTBYADDR : GETHOSTBYADDRv6); /* Compute the timeout time. */ @@ -349,7 +339,7 @@ addhstbyaddr (struct database *db, int fd, request_header *req, seteuid (uid); } - while (__gethostbyaddr_r (key, INADDRSZ, AF_INET, &resultbuf, buffer, + while (__gethostbyaddr_r (key, NS_INADDRSZ, AF_INET, &resultbuf, buffer, buflen, &hst, &h_errno) != 0 && h_errno == NETDB_INTERNAL && errno == ERANGE) @@ -438,7 +428,7 @@ addhstbyaddrv6 (struct database *db, int fd, request_header *req, seteuid (uid); } - while (__gethostbyaddr_r (key, IN6ADDRSZ, AF_INET6, &resultbuf, + while (__gethostbyaddr_r (key, NS_IN6ADDRSZ, AF_INET6, &resultbuf, buffer, buflen, &hst, &h_errno) != 0 && h_errno == NETDB_INTERNAL && errno == ERANGE) -- cgit v1.1