summary refs log tree commit diff
path: root/nscd
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 /nscd
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 'nscd')
-rw-r--r--nscd/grpcache.c4
-rw-r--r--nscd/nscd_getgr_r.c11
-rw-r--r--nscd/nscd_getpw_r.c11
-rw-r--r--nscd/nscd_proto.h4
4 files changed, 24 insertions, 6 deletions
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
index 2b837f8bc1..3f3f4ba0ec 100644
--- a/nscd/grpcache.c
+++ b/nscd/grpcache.c
@@ -407,7 +407,7 @@ cache_getgrgid (void *v_param)
   if (grp != NULL)
     {
       if (debug_flag)
-	dbg_log (_("Found \"%d\" in cache !\n"), gid);
+	dbg_log (_("Found \"%d\" in cache !"), gid);
 
       ++poshit;
       gr_send_answer (param->conn, grp);
@@ -422,7 +422,7 @@ cache_getgrgid (void *v_param)
       int status;
 
       if (debug_flag)
-	dbg_log (_("Doesn't found \"%d\" in cache !\n"), gid);
+	dbg_log (_("Doesn't found \"%d\" in cache !"), gid);
 
       pthread_rwlock_unlock (&grplock);
 
diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c
index 8129d81d66..27d05e05c6 100644
--- a/nscd/nscd_getgr_r.c
+++ b/nscd/nscd_getgr_r.c
@@ -29,6 +29,8 @@
 #include "nscd.h"
 #include "nscd_proto.h"
 
+int __nss_not_use_nscd_group;
+
 static int __nscd_getgr_r (const char *key, request_type type,
 			   struct group *resultbuf, char *buffer,
 			   size_t buflen);
@@ -98,8 +100,11 @@ __nscd_getgr_r (const char *key, request_type type, struct group *resultbuf,
   ssize_t nbytes;
 
   if (sock == -1)
-    /* Returning two signals that contacting the daemon failed.  */
-    return 2;
+    {
+      /* Returning two signals that contacting the daemon failed.  */
+      __nss_not_use_nscd_group = 1;
+      return 1;
+    }
 
   req.version = NSCD_VERSION;
   req.type = type;
@@ -127,7 +132,9 @@ __nscd_getgr_r (const char *key, request_type type, struct group *resultbuf,
 
   if (gr_resp.found == -1)
     {
+      /* The daemon does not cache this database.  */
       close (sock);
+      __nss_not_use_nscd_group = 1;
       return 1;
     }
 
diff --git a/nscd/nscd_getpw_r.c b/nscd/nscd_getpw_r.c
index 4420b80399..d9401ed3c9 100644
--- a/nscd/nscd_getpw_r.c
+++ b/nscd/nscd_getpw_r.c
@@ -29,6 +29,8 @@
 
 #include "nscd.h"
 
+int __nss_not_use_nscd_passwd;
+
 static int __nscd_getpw_r (const char *key, request_type type,
 			   struct passwd *resultbuf, char *buffer,
 			   size_t buflen);
@@ -98,8 +100,11 @@ __nscd_getpw_r (const char *key, request_type type, struct passwd *resultbuf,
   ssize_t nbytes;
 
   if (sock == -1)
-    /* Returning two signals that contacting the daemon failed.  */
-    return 2;
+    {
+      /* Returning two signals that contacting the daemon failed.  */
+      __nss_not_use_nscd_passwd = 1;
+      return 1;
+    }
 
   req.version = NSCD_VERSION;
   req.type = type;
@@ -127,7 +132,9 @@ __nscd_getpw_r (const char *key, request_type type, struct passwd *resultbuf,
 
   if (pw_resp.found == -1)
     {
+      /* The daemon does not cache this database.  */
       close (sock);
+      __nss_not_use_nscd_passwd = 1;
       return 1;
     }
 
diff --git a/nscd/nscd_proto.h b/nscd/nscd_proto.h
index 6f7b30df88..f82f86c1ab 100644
--- a/nscd/nscd_proto.h
+++ b/nscd/nscd_proto.h
@@ -23,6 +23,10 @@
 #include <grp.h>
 #include <pwd.h>
 
+/* Variables for communication between NSCD handler functions and NSS.  */
+extern int __nss_not_use_nscd_passwd;
+extern int __nss_not_use_nscd_group;
+
 extern int __nscd_getpwnam_r __P ((const char *name, struct passwd *resultbuf,
 				   char *buffer, size_t buflen));
 extern int __nscd_getpwuid_r __P ((uid_t uid, struct passwd *resultbuf,