summaryrefslogtreecommitdiff
path: root/nscd/nscd_getgr_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 /nscd/nscd_getgr_r.c
parenta788b6c2163aa8b7c526a61542d01b7cbbc8859e (diff)
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/nscd_getgr_r.c')
-rw-r--r--nscd/nscd_getgr_r.c11
1 files changed, 9 insertions, 2 deletions
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;
}