Commit Graph

26 Commits

Author SHA1 Message Date
Ulrich Drepper
70e2ebba53 Remove last remnants of -S option support. 2005-12-30 16:51:19 +00:00
Ulrich Drepper
2c210d1eb8 * nscd/connection.c (DEFAULT_DATASIZE_PER_BUCKET): Move to nscd.h.
(dbs): Initialize max_db_size fields.
	(nscd_init): When mapping the database, use max_db_size as the
	mapping size even if it is bigger than the file size.
	* nscd/mem.c (mempool_alloc): When resizing the file make sure the
	limit in max_db_size is not exceeded.  Don't use mremap, just
	posix_fallocate is enough (according to Linus).  Use posix_fallocate
	correctly.
	* nscd/nscd.conf: Add max-db-size parameters.
	* nscd/nscd.h (struct database_dyn): Add max_db_size field.
	Define DEFAULT_MAX_DB_SIZE and DEFAULT_DATASIZE_PER_BUCKET.
	Temporarily define TEMP_FAILURE_RETRY_VAL here.
	* nscd/nscd_conf.c (nscd_parse_file): Parse max-db-size parameter
	and add sanity checks for it.

	* nscd/aicache.c (addhstaiX): Use send with MSG_NOSIGNAL not write to
	send reply.
	* nscd/connection.c (writeall): Likewise.
	(handle_request): Likewise.
	* nscd/grpcache.c (cache_addgr): Likewise.
	* nscd/hstcache.c (cache_addhst): Likewise.
	* nscd/initgrcache.c (addinitgroupsX): Likewise.
	* nscd/nscd.c (parse_opt): Likewise.
	* nscd/nscd_stat.c (send_stats): Likewise.
	(receive_print_stats): Likewise.
	* nscd/pwdcache.c (cache_addpw): Likewise.
2005-08-23 23:21:53 +00:00
Ulrich Drepper
dc4bb1c2be * posix/bits/unistd.h (confstr, getgroups, ttyname_r, gethostname,
getdomainname): Add __NTH.
	* stdlib/bits/stdlib.h (ptsname_r, wctomb, mbstowcs, wcstombs):
	Likewise.
	(realpath): Likewise.  Use __const instead of const.  Add __restrict
	keywords.
	* socket/bits/socket2.h (recvfrom): Add __restrict keyword to __buf.
	* wcsmbs/bits/wchar2.h (wmemcpy, wmemmove, wmempcpy, wmemset,
	wcscpy, wcpcpy, wcsncpy, wcpncpy, wcscat, wcsncat, vswprintf, wcrtomb,
	mbsrtowcs, wcsrtombs, mbsnrtowcs, wcsnrtombs): Add __NTH.
	* string/bits/string3.h (__memset_ichk): Likewise.
	(__memcpy_ichk, __memmove_ichk, __mempcpy_ichk, __strcpy_ichk,
	__stpcpy_ichk, __strncpy_ichk, stpncpy, __strcat_ichk,
	__strncat_ichk): Likewise.  Use __const instead of const.
	(__stpncpy_chk): Use __const instead of const.
	(__stpncpy_alias): Use __REDIRECT_NTH instead of __REDIRECT.

2005-08-08  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* nscd/mem.c (BLOCK_ALIGN_LOG, BLOCK_ALIGN, BLOCK_ALIGN_M1): Move
	definitions to...
	* nscd/nscd.h (BLOCK_ALIGN_LOG, BLOCK_ALIGN, BLOCK_ALIGN_M1): ...here.
	* nscd/connections.c (usekey): New enum.
	(check_use, verify_persistent_db): New functions.
	(nscd_init): If persistent database is corrupted, unlink it and
	recreate rather than falling back to non-persistent database.
	Call verify_persistent_db.  Avoid overflows in total computation.

2005-08-08  Ulrich Drepper  <drepper@redhat.com>

	* iconvdata/utf-16.c (PREPARE_LOOP): Minor cleanups to make code
	better readable.  Avoid passing var to loop function, it's not
	necessary at all.
2005-08-08 19:04:11 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper
457962e5f1 Update.
2004-10-15  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.h (_PATH_NSCD_PASSWD_DB): Move to /var/db.
	(_PATH_NSCD_GROUP_DB): Likewise.
	(_PATH_NSCD_HOSTS_DB): Likewise.
	(_PATH_NSCD_XYZ_DB_TMP): New #define, point to /var/run.
	* nscd/connections.c (nscd_init): Non-persistent database files
	are created with the _PATH_NSCD_XYZ_DB_TMP path.
	* nscd/nscd.init: Create /var/db/nscd if necessary.
2004-10-15 21:20:11 +00:00
Ulrich Drepper
27e8285643 Update.
Dynamically create new threads if necessary.
	* nscd/connections.c (fd_ready): If no thread available for processing
	the request, create a new one unless the limit is reached.
	(start_threads): Check errors from pthread_create.
	* nscd/nscd.h: Declare max_nthreads.
	* nscd/nscd_conf.c: Parse max-nthreads entry.
	* nscd/nscd.conf: Add max-threads entry.
	* nscd/nscd_stat.c: Print current and maximum number of threads.
2004-10-03 21:11:37 +00:00
Ulrich Drepper
4401d75905 Update.
Implement paranoia mode.
	* nscd/connections.c (nscd_init): Mark database and socket descriptors
	as close on exec.
	(restart): New function.
	(restart_p): New function.
	(nscd_run): Add missing descrement of nready in case readylist is
	empty.
	(main_loop_poll): Call restart_p and restart.
	(main_loop_epoll): Likewise.
	(begin_drop_privileges): Save original UID and GID.
	* nscd/nscd.c: Define new variables paranoia, restart_time,
	restart_interval, oldcwd, old_gid, old_uid.
	(main): Disable paranoia mode if we are not forking.
	(check_pid): When re-execing, the PID file contains the same PID as
	the current process.  Do not fail in this case.
	* nscd/nscd.conf: Add paranoia and restart-interval entries.
	* nscd/nscd.h: Define RESTART_INTERVAL.  Declare new variables.
	* nscd/nscd_conf.c: Parse paranoia and restart-internal configurations.
	* nscd/nscd_stat.c: Print paranoia and restart-internal values.
2004-10-03 19:33:48 +00:00
Ulrich Drepper
26235c7c45 Add declaretion of addinitgroups and readdinitgroups. 2004-09-30 07:15:40 +00:00
Ulrich Drepper
d19687d6eb Update.
2004-09-15  Ulrich Drepper  <drepper@redhat.com>

	* nscd/Makefile (rountines): Add nscd_getai.
	(nscd-modules): Add aicache.
	* nscd/aicache.c: New file.
	* nscd/nscd_getai.c: New file.
	* nscd/cache.c (prune_cache): Handle GETAI request type.
	* nscd/connections.c: Add GETAI support in request handling.
	* nscd/nscd-client.h (request_type): Add GETAI.
	Define ai_response_header and struct nscd_ai_result types.
	(struct datahead): Add aidata field.
	Declare __nscd_getai.
	* nscd/nscd.c: Add getaddrinfo definition to catch problems.
	* nscd/nscd.h: Declare addhstai and readdhstai.

	* sysdeps/posix/getaddrinfo.c: Add support for using cached results.

	* nscd/nscd-client.h  (struct datahead): Use uint8_t instead of bool.
2004-09-15 08:25:49 +00:00
Ulrich Drepper
3418007ed6 Update.
2004-09-10  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.c (pagesize_m1): New variable.
	(main): Initialize it.
	* nscd/nscd.h: Declare pagesize_m1.
	* nscd/hstcache.c: Pass correctly aligned address to msync.
	* nscd/grpcache.c: Likewise.
	* nscd/pwdcache.c: Likewise.
2004-09-10 23:56:29 +00:00
Ulrich Drepper
081fc592fa Update.
Jakub Jelinek  <jakub@redhat.com>

	* nscd/Makefile (nscd-modules): Add nscd_setup_thread.
	* nscd/connections.c (nscd_run): Call setup_thread for maintenance
	threads.
	* nscd/nscd-client.h (struct database_pers_head): Add
	nscd_certainly_running field.
	* nscd/nscd.h: Declare setup_thread.
	* nscd/nscd_helper.c (__nscd_get_map_ref): Avoid the time test if
	nscd_certainly_running is nonzero.

2004-09-08  Ulrich Drepper  <drepper@redhat.com>
2004-09-08 17:56:46 +00:00
Ulrich Drepper
c207f23b0b Update.
* nscd/connections.c: Implement r/o sharing of nscd's cache with client
	processes via shared memory.
	* nscd/nscd-client.h: Likewise.
	* nscd/nscd.h: Likewise.
	* nscd/nscd_conf.c: Likewise.
	* nscd/nscd_getgr_r.c: Likewise.
	* nscd/nscd_getpw_r.c: Likewise.
	* nscd/nscd_gethst_r.c: Likewise.
	* nscd/nscd.conf: Add new config parameters.
	* nscd/Makefile (aux): Add nscd_helper.
	* nscd/nscd_helper.c: New file.
	* nscd/mem.c (gc): Indicate beginning and end of the gc cycle.

	* nscd/hstcache.c: Simplify a lot.  We cache only the request itself,
	no derived information.
	* connections.c (nscd_init): Fix bug in testing size of the persistent.

	* nis/Makefile (aux): Add nis_hash.
	* nis/nis_hash.c: New file.  Split out from nis_util.c.
	* nis/nis_util.c: Move __nis_hash code in separate file.

	* csu/tst-atomic.c: Improve atomic_increment_val test which would
	not have found a ppc bug.
2004-09-08 15:46:42 +00:00
Ulrich Drepper
a95a08b4af Update.
2004-08-26  Ulrich Drepper  <drepper@redhat.com>

	* nscd/cache.c: Major rewrite.  The data is now optionally kept in
	a mmaped memory region which is automatically mirrored on disk.
	This implements persistent data storage.  The Memory handled
	needed to be completely revamped, it now uses a garbage collection
	mechanism instead of malloc.
	* nscd/connections.c: Likewise.
	* nscd/nscd.c: Likewise.
	* nscd/nscd.h: Likewise.
	* nscd/nscd_conf.c: Likewise.
	* nscd/nscd_stat.c: Likewise.
	* nscd/grpcache.c: Likewise.
	* nscd/hstcache.c:: Likewise.
	* nscd/pwdcache.c:: Likewise.
	* nscd/Makefile: Add rules to build mem.c.
	* nscd/mem.c: New file.
	* nscd/nscd.conf: Describe new configuration options.
2004-08-26 18:35:05 +00:00
Ulrich Drepper
a12ce44f69 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.
2003-05-04 07:00:44 +00:00
Ulrich Drepper
a16e35856a Update.
* nscd/connections.c (client_queued): New variable.
	(nscd_run): Revamp the loop.  Don't call poll except for cleanup
	threads.  Keep track of the number of delays caused because of busy
	worker threads.
	* nscd/nscd.h: Declare client_queued.
	* nscd/nscd_stat.c: Transmit and print client_queued information.
2003-04-28 03:40:26 +00:00
Ulrich Drepper
c86e6aec55 Update.
* nscd/cache.c (cache_search): Keep track of how many chain links
	we searched and update table statistics.
	(cache_add): Keep track of how many values are in the table.
	(prune_cache): Likewise.  Keep track of locking success.
	Print messages about removed entries in separate pass.
	* nscd/connections.c (handle_request): Don't print debug message here.
	The caller will do it.  Keep track of locking success.
	(nscd_run): Print debug message.  Also print PID of the client process.
	* nscd/nscd.c (start_time): New variable.
	(main): Remember start time.
	* nscd/nscd.h: Declare start_time.
	(struct database): Add more members for new statistics.
	* nscd/nscd_stat.c: Add support for sending, receiving, and printing
	of new statistics.
2003-04-26 04:15:50 +00:00
Roland McGrath
638bb1f394 * nscd/cache.c (cache_search): Give first arg type `request_type'.
* nscd/nscd.h: Update decl.

	* nscd/nscd_getpw_r.c (nscd_getpw_r): Add casts for signedness.
	* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
	* elf/dl-close.c (_dl_close): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): int -> size_t
	* io/fts.c (fts_build): Likewise.
	* elf/cache.c (add_to_cache): Likewise.
	* locale/programs/locarchive.c (show_archive_content): Likewise.

	* posix/fnmatch.c (fnmatch): Tweak __builtin_expect use.

	* include/ctype.h (__ctype_b_loc): Tweak type punning to make gcc 3.3
	happy.
	(__ctype_toupper_loc, __ctype_tolower_loc): Likewise.
2003-03-16 01:04:03 +00:00
Andreas Jaeger
41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +00:00
Andreas Jaeger
8f11d6f9bf Add noreturn attribute for start_threads. 2001-04-23 06:04:16 +00:00
Ulrich Drepper
595538976b Update.
2000-11-20  Jakub Jelinek  <jakub@redhat.com>

	* iconvdata/bug-iconv2.c (main): Use %zd in format string.
	* io/test-lfs.c (do_test): Cast statbuf.st_size to long long.
	* malloc/tst-valloc.c (main): Cast valloc return value to long.
	* malloc/tst-obstack.c (verbose_malloc): Use %zd in format string.
	* math/test-fpucw.c (main): Use %lx in format string, cast
	control words to long.
	* stdio-common/tst-fmemopen.c (main): Use %td in format strings.
	* stdlib/tst-strtol.c (tests): Avoid (bogus?) decimal constant is so
	large that it is unsigned warning.

	* sysdeps/unix/sysv/linux/sparc/bits/types.h (__ssize_t): Changing
	it to long on sparc64.

2000-11-20  Andreas Jaeger  <aj@suse.de>

	* nscd/nscd.h (termination_handler): Add noreturn attribute.
	(receiv_print_stats): Likewise.

	* elf/ldconfig.c (path_hwcap): Cast -1 for proper comparison.
2000-11-20 17:40:29 +00:00
Ulrich Drepper
adcf0e4a33 Update.
* iconv/iconv_prog.c (main): Handle input file name "-" correctly.
	Recognize option -s, -c, and -l.

2000-04-20  Thorsten Kukuk  <kukuk@suse.de>

	* nscd/nscd.c: Start new session for nscd, drop privilegs
	to configured user if requested and no -S parameter are used.
	* nscd/nscd.conf: Add new option "server-user".
	* nscd/nscd_conf.c: Add support for new "server-user" option.
	* nscd/nscd.h: Add declaration for server_user variable.
	Based on patch by Chris Wing <wingc@engin.umich.edu>

2000-04-29  Mark Kettenis  <kettenis@gnu.org>

	* sysdeps/unix/sysv/linux/i386/sigaction.c: Add comment explaining
	that changing the __restore and __restore_rt signal return code
	will break GDB.

2000-04-29  Mark Kettenis  <kettenis@gnu.org>

	* sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Do not include
	<sys/user.h>.

2000-04-29  Mark Kettenis  <kettenis@gnu.org>

	* conform/data/ucontext.h-data: Allow ss_* instead of SS_*.

2000-04-29  Ulrich Drepper  <drepper@redhat.com>
2000-04-30 06:52:59 +00:00
Ulrich Drepper
a1c542bfc5 Update.
1999-06-11  Thorsten Kukuk  <kukuk@suse.de>

	* nscd/nscd.c: Add -S options for separate caching of data for
	every user. So one user couldn't see the data another user
	has gotten with his credentials.
	* nscd/nscd.h: Add new prototypes.
	* nscd/cache.c: Compare owner of cache entry if in secure mode.
	* nscd/connections.c: Check on shutdown if caller really was root.
	In secure mode get uid of caller.
	* nscd/grpcache.c: Add support for new secure group mode.
	* nscd/hstcache.c: Add support for new secure hosts mode.
	* nscd/pwdcache.c: Add support for new secure passwd mode.
1999-06-11 20:58:21 +00:00
Roland McGrath
4f6bfa8090 * nscd/nscd-client.h: New file, broken out of "nscd.h".
* nscd/nscd.h: Move defns needed by clients to "nscd-client.h",
	and #include that.
	* nscd/Makefile (distribute): Add nscd-client.h
1998-10-18 22:02:47 +00:00
Ulrich Drepper
67479a700e Update.
1998-10-18  Ulrich Drepper  <drepper@cygnus.com>

	* resolv/nss_dns/dns-host.c: Add missing errnop parameter to the
	NSS functions.
	* resolv/nss_dns/dns-network.c: Likewise.

	* grp/Makefile: Don't search for linuxhtreads in add-ons, use
	have-thread-library to determine whether threads are available.
	* pwd/Makefile: Remove wrong comment.

	* inet/Makefile: Define CFLAGS-gethstbyad_r.c, CFLAGS-gethstbynm_r.c,
	and CFLAGS-gethstbynm2_r.c to -DUSE_NSCD=1.

	* locale/C-messages.c: Define default strings for YESTR and NOSTR.

	* nss/Versions: Add __nss_hosts_lookup.

	* nss/getXXbyYY.c: Remove unneeded assignment.

	* nss/getXXbyYY_r.c: Include nscd/nscd_proto.h only if needed.

	Almost complete rewrite of the NSCD to make it smaller, faster,
	add more functionnality and make it easier to extend.
	* nscd/Makfile (routines): Add nscd_gethst_r.
	(nscd-modules): Add hstcache, gethstbyad_r, gethstbynm2_r, and cache.
	* nscd/cache.c: New file.
	* nscd/gethstbyad_r.c: New file.
	* nscd/gethstbynm2_r.c: New file.
	* nscd/hstcache.c: New file.
	* nscd/nscd_gethst_r.c: New file.
	* nscd/connections.c: Rewritten.  Don't start new thread for every
	new connection.  Use a fixed set of threads which handle all
	connections and also the cache cleanup.
	* nscd/grpcache.c: Rewritten to use generic cache handling functions
	in cache.c.
	* nscd/nscd.c: Recognize new parameter nthreads.  Adjust initialization
	for rewrite.  Remove handle_requests function.
	* nscd/nscd.h (NSCD_VERSION): Bump to 2.
	Define new data structure for the new unified cache and the host
	database entries.
	* nscd/nscd_conf.c: Rewrite parsing partly to allow adding of more
	databases easily.  Recognize check-files and threads definitions.
	* nscd/nscd.conf: Add definition of enable-cache and check-files to
	passwd and group definitions.  Add new set of definitions for hosts.
	* nscd/nscd_getgr_r.c: Rewrite for new protocol.
	* nscd/nscd_getpw_r.c: Likewise.
	* nscd/nscd_proto.h: Add prototype for host database functions.
	* nscd/nscd_stat.c: Rewrite to simplify printing of information
	for many databases.
	* nscd/dbg_log.c: Remove unnecessary variable initializations.
	Global variable debug_flag is renamed to dbg_level.
	* nscd/dbg_log.h: Declare set_logfile.
1998-10-18 15:16:22 +00:00
Ulrich Drepper
d67281a7ea Update.
1998-01-31  Phil Blundell  <philb@gnu.org>

	* configure.in: Add --without-cvs option to suppress automatic
	checkin of regenerated files.
	* config.make: Likewise.
	* Makefile: Respect with-cvs setting.
	* Makerules: Likewise.

	* configure.in: Allow the standalone ARM port to be configured.

1998-01-31  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* grp/getgrgid_r.c: Define USE_NSCD.
	* grp/getgrnam_r.c: Likewise.
	* pwd/getpwuid_r.c: Likewise.
	* pwd/getpwnam_r.c: Likewise.

	* sysdeps/unix/inet/Subdirs: Add nscd subdir.

	* nss/getXXbyYY_r.c: Try at first nscd.

	* nscd/Makefile: New, for the Name Switch Cache Daemon (nscd).
	* nscd/connections.c: New file.
	* nscd/dbg_log.c: New file.
	* nscd/dbg_log.h: New file.
	* nscd/grpcache.c: New file.
	* nscd/nscd.c: New file.
	* nscd/nscd.h: New file.
	* nscd/nscd_conf.c: New file.
	* nscd/nscd_stat.c: New file.
	* nscd/pwdcache.c: New file.

	* nscd/nscd_getgr_r.c: New, client code, linked into libc.
	* nscd/nscd_getpw_r.c: Likewise.
	* nscd/nscd_proto.h: New, prototypes for client functions.

	* nscd/nscd.conf: New, example for a configuration file.
	* nscd/nscd.init: New, example for a startup script.

	* nscd/getgrgid_r.c: Old grp/getgrgid_r version, used from nscd to
	avoid deadlocks.
	* nscd/getgrnam_r.c: Likewise.
	* nscd/getpwnam_r.c: Likewise.
	* nscd/getpwuid_r.c: Likewise.

	* nis/nis_cache.c: New file.
	* nis/nis_cache2.h: New file.
	* nis/nis_cache2_xdr.c: New file.
1998-01-31 08:39:55 +00:00