diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | nscd/connections.c | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 49256a91f0..02d3119e6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-06-27 Ulrich Drepper <drepper@redhat.com> + * nscd/connections.c (invalidate_cache): If the host cache has to + be invalidated, re-read resolv.conf. + * resolv/resolv.h (RES_NOIP6DOTINT): Define. * resolv/res_init.c (res_setoptions): Handle no-ip6-dotint option. * resolv/gethnamaddr.c (gethostbyaddr): Don't lookup with .ip6.int diff --git a/nscd/connections.c b/nscd/connections.c index 5cb73eb252..82f89c85e7 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -1,5 +1,5 @@ /* Inner loops of cache daemon. - Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. + Copyright (C) 1998-2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -25,6 +25,7 @@ #include <grp.h> #include <pthread.h> #include <pwd.h> +#include <resolv.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -241,7 +242,12 @@ invalidate_cache (char *key) else if (strcmp (key, "group") == 0) number = grpdb; else if (__builtin_expect (strcmp (key, "hosts"), 0) == 0) - number = hstdb; + { + number = hstdb; + + /* Re-initialize the resolver. resolv.conf might have changed. */ + res_init (); + } else return; |