diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-05-04 07:00:44 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-05-04 07:00:44 +0000 |
commit | a12ce44f6992d8249f779e95db730a9634571654 (patch) | |
tree | 27b9bac188927e65f23574bc15258aeac868ddff /nscd/nscd_conf.c | |
parent | f866314b89d56845f55e6f365e18b31ec978ec3a (diff) | |
download | glibc-a12ce44f6992d8249f779e95db730a9634571654.tar.gz |
Update.
2003-05-03 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd.c (main): Parse config file right after parsing
parameters. Then, if get_stats is true, call receive_print_stats.
Drop parameter from nscd_init call.
(get_stats): New variable.
(parse_opt): Set get_stats, don't call receive_print_stats here.
* nscd/nscd.h: Declare dbs, stat_user, and stat_uid. Adjust nscd_init
prototype.
* nscd/connections.c (stat_user, stat_uid): New variables.
(dbs): Make global.
(nscd_init): Don't read configuration file here. Drop parameter.
(handle_request): Cleanup handling of non-database lookup requests.
* nscd/nscd_conf.c (nscd_parse_file): Recognize stat-user entry.
Get UID of the specified user. Use xstrdup instead of strdup.
* nscd/nscd_stat.c (receive_print_stats): Check UID. If not zero,
check stat_user.
* nscd/Makefile (nscd-modules): Add xstrdup.
* nscd/nscd.conf: Document stat-user entry.
2003-05-03 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/ia64/sysdep.h (__NR_semtimedop): Define
if not defined.
Diffstat (limited to 'nscd/nscd_conf.c')
-rw-r--r-- | nscd/nscd_conf.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c index 7de38d9d25..23c28ceef0 100644 --- a/nscd/nscd_conf.c +++ b/nscd/nscd_conf.c @@ -1,4 +1,4 @@ -/* Copyright (c) 1998, 2000 Free Software Foundation, Inc. +/* Copyright (c) 1998, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998. @@ -19,6 +19,7 @@ #include <ctype.h> #include <malloc.h> +#include <pwd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -29,6 +30,10 @@ #include "dbg_log.h" #include "nscd.h" +/* Wrapper functions with error checking for standard functions. */ +extern char *xstrdup (const char *s); + + /* Names of the databases. */ const char *dbnames[lastdb] = { @@ -181,7 +186,20 @@ nscd_parse_file (const char *fname, struct database dbs[lastdb]) if (!arg1) dbg_log (_("Must specify user name for server-user option")); else - server_user = strdup (arg1); + server_user = xstrdup (arg1); + } + else if (strcmp (entry, "stat-user") == 0) + { + if (!arg1) + dbg_log (_("Must specify user name for stat-user option")); + else + { + stat_user = xstrdup (arg1); + + struct passwd *pw = getpwnam (stat_user); + if (pw != NULL) + stat_uid = pw->pw_uid; + } } else dbg_log (_("Unknown option: %s %s %s"), entry, arg1, arg2); |