about summary refs log tree commit diff
path: root/nss/getXXbyYY_r.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-06 11:39:36 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-06 11:39:36 +0000
commitac16e90592f0b9842e193e2ebe0b3756f0b4361d (patch)
tree0b993b3126a76f47b80cf7254916627be7b55a67 /nss/getXXbyYY_r.c
parenta788b6c2163aa8b7c526a61542d01b7cbbc8859e (diff)
downloadglibc-ac16e90592f0b9842e193e2ebe0b3756f0b4361d.tar.gz
glibc-ac16e90592f0b9842e193e2ebe0b3756f0b4361d.tar.xz
glibc-ac16e90592f0b9842e193e2ebe0b3756f0b4361d.zip
Update.
1998-03-06 11:35  Ulrich Drepper  <drepper@cygnus.com>

	* posix/wordexp-test.c: Change testsuite so that it can run even
	for ~root != /root.

1998-03-06  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c (catanh_test): Change epsilon for gcc 2.8.1.

1998-03-05  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* 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  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/sysdep.h (L): Remove definition.
	* sysdeps/i386/sysdep.h (L): Define it here instead.

1998-03-05  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>
	* 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.
Diffstat (limited to 'nss/getXXbyYY_r.c')
-rw-r--r--nss/getXXbyYY_r.c16
1 files changed, 6 insertions, 10 deletions
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