From ac16e90592f0b9842e193e2ebe0b3756f0b4361d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 6 Mar 1998 11:39:36 +0000 Subject: Update. 1998-03-06 11:35 Ulrich Drepper * posix/wordexp-test.c: Change testsuite so that it can run even for ~root != /root. 1998-03-06 Andreas Jaeger * math/libm-test.c (catanh_test): Change epsilon for gcc 2.8.1. 1998-03-05 Andreas Schwab * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): Don't store into global errno if we already store through __errno_location. * sysdeps/unix/i386/sysdep.S: Likewise. * sysdeps/unix/alpha/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. Add missing return to SYSCALL_ERROR_HANDLER for (!_LIBC_REENTRANT && PIC). 1998-03-05 Andreas Schwab * sysdeps/generic/sysdep.h (L): Remove definition. * sysdeps/i386/sysdep.h (L): Define it here instead. 1998-03-05 Thorsten Kukuk * nss/getXXbyYY_r.c: Check __nss_not_use_nscd_* variable for running nscd. * nscd/nscd_getgr_r.c: Set __nss_not_use_nscd_group variable. * nscd/nscd_getpw_r.c: Set __nss_not_use_nscd_passwd variable. * nscd/nscd_proto.h: Declare __nss_not_use_nscd_* variables. --- nss/getXXbyYY_r.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'nss/getXXbyYY_r.c') diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index 8a38b0d628..6589b47ee7 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -56,6 +56,9 @@ # define NSCD_NAME ADD_NSCD (REENTRANT_NAME) # define ADD_NSCD(name) ADD_NSCD1 (name) # define ADD_NSCD1(name) __nscd_##name +# define NOT_USENSCD_NAME ADD_NOT_NSCDUSE (DATABASE_NAME) +# define ADD_NOT_NSCDUSE(name) ADD_NOT_NSCDUSE1 (name) +# define ADD_NOT_NSCDUSE1(name) __nss_not_use_nscd_##name #endif #define FUNCTION_NAME_STRING STRINGIZE (FUNCTION_NAME) @@ -88,10 +91,6 @@ extern struct __res_state _res; /* The lookup function for the first entry of this service. */ extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp); -/* Nonzero if the NSCD is not available. This variable will be increased - whenever we try to use the NSCD but see it is not avilable. So we - can recheck the presence every once in a while. */ -extern int __nss_nscd_not_available; /* Interval in which we transfer retry to contact the NSCD. */ #define NSS_NSCD_RETRY 100 @@ -117,10 +116,10 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, #endif #ifdef USE_NSCD - if (__nss_nscd_not_available && ++__nss_nscd_not_available > NSS_NSCD_RETRY) - __nss_nscd_not_available = 0; + if (NOT_USENSCD_NAME && ++NOT_USENSCD_NAME > NSS_NSCD_RETRY) + NOT_USENSCD_NAME = 0; - if (!__nss_nscd_not_available) + if (!NOT_USENSCD_NAME) { nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen H_ERRNO_VAR); @@ -129,9 +128,6 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, *result = nscd_status == 0 ? resbuf : NULL; return nscd_status; } - if (nscd_status == 2) - /* This return value indicates that contacting the server failed. */ - __nss_nscd_not_available = 1; } #endif -- cgit v1.2.3