diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-02-24 15:22:29 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-02-24 15:22:29 +0000 |
commit | 14e9dd679a43ef9eb90adc0764152045caab6146 (patch) | |
tree | 5fe46c23560e40ecd94ac79fbe1a07cd4b32c7b6 /nscd | |
parent | dfbad9c855e5aee39492fdc9fbe98eac5846f49c (diff) | |
download | glibc-14e9dd679a43ef9eb90adc0764152045caab6146.tar glibc-14e9dd679a43ef9eb90adc0764152045caab6146.tar.gz glibc-14e9dd679a43ef9eb90adc0764152045caab6146.tar.bz2 glibc-14e9dd679a43ef9eb90adc0764152045caab6146.zip |
Update.
1998-02-24 15:12 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig: Filter out frame-pointer effecting options when
compiling profiling or debugging code.
* config.h.in (internal_function): Don't define here if PROF is
defined.
* gmon/gmon.c (__moncontrol): Don't change state if already in error
state.
(__monstartup): If calloc fails set error state and mark array as
not allocated.
(_mcleanup): Don't call write_gmon if in error state. Don't try
to free array if not successfully allocated.
* elf/dl-load.c (STRING): Define to __STRING to enble expansion.
Include elf.h to get macro definitions.
Use __ELF?NATIVE?CLASS in message, not __ELF_WORDSIZE.
1998-02-24 09:40 Ulrich Drepper <drepper@cygnus.com>
* elf/ldd.sh.in: Add compatibility for broken old shells.
* elf/ldd.bash.in: Likewise.
1998-02-24 08:11 H.J. Lu <hjl@gnu.org>
* sunrpc/rpc_main.c (open_input): Check pipe return error.
* time/clocktest.c (main): Check signal return error.
1998-02-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* iconv/Makefile ($(inst_bindir)/iconv): Correct typo, add
"/" and use do-install-program. Reported by Mark M. Kettenis.
(subdir_install): Likewise.
1998-02-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc_sample.c: Fix typo.
* nscd/connections.c: Use locale.
* nscd/grpcache.c: Add debug messages, gidtbl should get the
calloc result.
* nscd/nscd.c: Check if init functions fails.
* nscd/nscd_conf.c: Allow disabling of group cache.
* nscd/nscd_getgr_r.c: Fix return code if group not found.
* nscd/pwdcache.c: Fix debug messages.
1998-02-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add __monstartup and _mcleanup for profiling support.
1998-02-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Export __getpagesize, for binary compatibility with
2.0.
1998-02-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.sh: Use --library-path instead of
LD_LIBRARY_PATH.
* localedata/sort-test.sh: Likewise.
* localedata/tst-fmon.sh: Likewise. Avoid useless use of cat.
1998-02-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/sigaction.c: Translate between struct
sigaction and struct kernel_sigaction for __syscall_rt_sigaction.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/kernel_sigaction.h (struct
kernel_sigaction): Define.
* sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h (struct
kernel_sigaction): Define.
1998-02-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: Change epsilons for libm-ieee754.
1998-02-23 12:33 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/__longjmp.S: Fix race condition.
Reported by Bruno Haible <haible@ilog.fr>.
Diffstat (limited to 'nscd')
-rw-r--r-- | nscd/connections.c | 2 | ||||
-rw-r--r-- | nscd/grpcache.c | 26 | ||||
-rw-r--r-- | nscd/nscd.c | 9 | ||||
-rw-r--r-- | nscd/nscd_conf.c | 5 | ||||
-rw-r--r-- | nscd/nscd_getgr_r.c | 9 | ||||
-rw-r--r-- | nscd/pwdcache.c | 21 |
6 files changed, 52 insertions, 20 deletions
diff --git a/nscd/connections.c b/nscd/connections.c index abde747a8a..36e89fa25d 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -393,7 +393,7 @@ pw_send_disabled (int conn) if (sock[conn] == 0) { - dbg_log ("bad connection id on send response [%d|%d]", + dbg_log (_("bad connection id on send response [%d|%d]"), conn, sock[conn]); return; } diff --git a/nscd/grpcache.c b/nscd/grpcache.c index 9734d08510..2b837f8bc1 100644 --- a/nscd/grpcache.c +++ b/nscd/grpcache.c @@ -109,7 +109,7 @@ cache_grpinit () grptbl = calloc (modulo, sizeof (grphash)); if (grptbl == NULL) return -1; - calloc (modulo, sizeof (grphash)); + gidtbl = calloc (modulo, sizeof (grphash)); if (gidtbl == NULL) return -1; negtbl = calloc (modulo, sizeof (neghash)); @@ -179,6 +179,9 @@ add_cache (struct group *grp) unsigned long int hash = __nis_hash (grp->gr_name, strlen (grp->gr_name)) % modulo; + if (debug_flag) + dbg_log (_("grp_add_cache (%s)"), grp->gr_name); + work = &grptbl[hash]; if (grptbl[hash].grp == NULL) @@ -244,10 +247,16 @@ add_negcache (char *key) neghash *work; unsigned long int hash = __nis_hash (key, strlen (key)) % modulo; + if (debug_flag) + dbg_log (_("grp_add_netgache (%s|%ld)"), key, hash); + work = &negtbl[hash]; if (negtbl[hash].key == NULL) - negtbl[hash].key = strdup (key); + { + negtbl[hash].key = strdup (key); + negtbl[hash].next = NULL; + } else { while (work->next != NULL) @@ -268,6 +277,9 @@ cache_search_neg (const char *key) neghash *work; unsigned long int hash = __nis_hash (key, strlen (key)) % modulo; + if (debug_flag) + dbg_log (_("grp_cache_search_neg (%s|%ld)"), key, hash); + work = &negtbl[hash]; while (work->key != NULL) @@ -286,7 +298,7 @@ void * cache_getgrnam (void *v_param) { param_t *param = (param_t *)v_param; - struct group *grp, resultbuf; + struct group *grp; pthread_rwlock_rdlock (&grplock); grp = cache_search_name (param->key); @@ -294,7 +306,7 @@ cache_getgrnam (void *v_param) /* I don't like it to hold the read only lock longer, but it is necessary to avoid to much malloc/free/strcpy. */ - if (grp) + if (grp != NULL) { if (debug_flag) dbg_log (_("Found \"%s\" in cache !"), param->key); @@ -307,9 +319,10 @@ cache_getgrnam (void *v_param) } else { + int status; int buflen = 1024; char *buffer = calloc (1, buflen); - int status; + struct group resultbuf; if (debug_flag) dbg_log (_("Doesn't found \"%s\" in cache !"), param->key); @@ -371,6 +384,9 @@ cache_gr_disabled (void *v_param) { param_t *param = (param_t *)v_param; + if (debug_flag) + dbg_log (_("\tgroup cache is disabled\n")); + gr_send_disabled (param->conn); return NULL; } diff --git a/nscd/nscd.c b/nscd/nscd.c index 7e0b32ae19..a53abc1fe0 100644 --- a/nscd/nscd.c +++ b/nscd/nscd.c @@ -107,7 +107,7 @@ main (int argc, char **argv) /* Parse and process arguments. */ argp_parse (&argp, argc, argv, 0, &remaining, NULL); - if (remaining != 0) + if (remaining != argc) { error (0, 0, gettext ("wrong number of arguments")); argp_help (&argp, stdout, ARGP_HELP_SEE, program_invocation_short_name); @@ -152,8 +152,11 @@ main (int argc, char **argv) /* Create first sockets */ init_sockets (); /* Init databases */ - cache_pwdinit (); - cache_grpinit (); + if ((cache_pwdinit () < 0) || (cache_grpinit () < 0)) + { + fputs (_("Not enough memory\n"), stderr); + return 1; + } /* Handle incoming requests */ handle_requests (); diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c index 59c225e566..62a1e6cbd1 100644 --- a/nscd/nscd_conf.c +++ b/nscd/nscd_conf.c @@ -122,6 +122,11 @@ nscd_parse_file (const char *fname) if (strcmp (arg1, "passwd") == 0 && strcmp (arg2, "no") == 0) disabled_passwd = 1; + else if (strcmp (arg1, "group") == 0 + && strcmp (arg2, "no") == 0) + disabled_group = 1; + else + dbg_log (_("service %s is not supported"), arg1); } else if (strcmp (entry, "logfile") == 0) { diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c index 6739657e48..f133530f9f 100644 --- a/nscd/nscd_getgr_r.c +++ b/nscd/nscd_getgr_r.c @@ -205,7 +205,12 @@ __nscd_getgr_r (const char *key, request_type type, struct group *resultbuf, return 1; } } + close (sock); + return 0; + } + else + { + close (sock); + return -1; } - close (sock); - return 0; } diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c index 82a26efc25..721e77b7c9 100644 --- a/nscd/pwdcache.c +++ b/nscd/pwdcache.c @@ -163,7 +163,7 @@ add_cache (struct passwd *pwd) strlen (pwd->pw_name)) % modulo; if (debug_flag) - dbg_log (_("add_cache (%s)"), pwd->pw_name); + dbg_log (_("pwd_add_cache (%s)"), pwd->pw_name); work = &pwdtbl[hash]; @@ -231,7 +231,7 @@ add_negcache (char *key) unsigned long int hash = __nis_hash (key, strlen (key)) % modulo; if (debug_flag) - dbg_log (_("add_netgache (%s|%ld)"), key, hash); + dbg_log (_("pwd_add_netgache (%s|%ld)"), key, hash); work = &negtbl[hash]; @@ -249,7 +249,7 @@ add_negcache (char *key) work->next->key = strdup (key); work = work->next; } - /* Set a pointer from the pwuid hash table to the pwname hash table */ + time (&work->create); return 0; @@ -261,10 +261,10 @@ cache_search_neg (const char *key) neghash *work; unsigned long int hash = __nis_hash (key, strlen (key)) % modulo; - work = &negtbl[hash]; - if (debug_flag) - dbg_log (_("cache_search_neg (%s|%ld)"), key, hash); + dbg_log (_("pwd_cache_search_neg (%s|%ld)"), key, hash); + + work = &negtbl[hash]; while (work->key != NULL) { @@ -281,8 +281,8 @@ cache_search_neg (const char *key) void * cache_getpwnam (void *v_param) { + struct passwd *pwd; param_t *param = (param_t *)v_param; - struct passwd *pwd, resultbuf; pthread_rwlock_rdlock (&pwdlock); pwd = cache_search_name (param->key); @@ -300,13 +300,13 @@ cache_getpwnam (void *v_param) close_socket (param->conn); pthread_rwlock_unlock (&pwdlock); - pwd = &resultbuf; } else { int status; int buflen = 1024; - char *buffer = malloc (buflen); + char *buffer = calloc (1, buflen); + struct passwd resultbuf; if (debug_flag) dbg_log (_("Doesn't found \"%s\" in cache !"), param->key); @@ -367,6 +367,9 @@ cache_pw_disabled (void *v_param) { param_t *param = (param_t *)v_param; + if (debug_flag) + dbg_log (_("\tpasswd cache is disabled\n")); + pw_send_disabled (param->conn); return NULL; } |