* nscd/nscd_getai.c (__nscd_getai): Set errno to 0 in case we found
no entry.
* nscd/nscd_getgr.c (nscd_getgr_r): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
* nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
from return value.
* nscd/nscd_helper.c: Include string.h.
(__nscd_cache_search): Remove const qualifier from return value.
On strict alignment architectures check hash entry and data head
alignment.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Don't crash or fail because
mmapped data during GC cycle contains garbage. If
__nscd_drop_map_ref fails, decrement mapped->counter when returning
error or if retrying with NO_MAPPING, only __nscd_unmap if counter
dropped to 0.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
* nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
* nscd/nscd_getai.c (__nscd_getai): Likewise.
* nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
2007-01-31 Jakub Jelinek <jakub@redhat.com>
* nscd/nscd-client.h (__nscd_cache_search): Remove const qualifier
from return value.
* nscd/nscd_helper.c: Include string.h.
(__nscd_cache_search): Remove const qualifier from return value.
On strict alignment architectures check hash entry and data head
alignment.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Don't crash or fail because
mmapped data during GC cycle contains garbage. If
__nscd_drop_map_ref fails, decrement mapped->counter when returning
error or if retrying with NO_MAPPING, only __nscd_unmap if counter
dropped to 0.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
* nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
* nscd/nscd_getai.c (__nscd_getai): Likewise.
* nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
* nscd/nscd-client.h (libc_locked_map_ptr): Add new first
parameter, used as class for definition.
* nscd/nscd_getpw_r.c: Adjust for libc_locked_map_ptr change.
(pw_map_free): Ensure no crash after memory is freed.
* nscd/nscd_getgr.c: Likewise. Make map externally visible.
* nscd/nscd_gethst.c: Likewise.
* nscd/nscd_getai.c: Use map from nscd_gethost.c.
* nscd/nscd_initgroups.c: Use map from nscd_getgr.c.
* nscd/nscd.c (termination_handler): Reset timestamp so that
client immediately stop using the database.
(__nscd_drop_map_ref): Change second parameter to be a reference to
* nscd/nscd.h: Add declaration of addinitgroups and
2004-09-30 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd-client.h (__nscd_get_map_ref): Drop volatile from last
parameter.
(__nscd_drop_map_ref): Change second parameter to be a referenc to
a variable. Update variable when cycle count changed.
* nscd/nscd_helper.c (__nscd_get_map_ref): Remove volatile here, too.
* nscd/nscd_getai.c: Correctly use __nscd_drop_map_ref. Reinitialize
all variables and avoid memory leak in case of retries.
* nscd/nscd_getgr_r.c: Likewise.
* nscd/nscd_gethst_r.c: Likewise.
* nscd/nscd_getpw_r.c: Likewise.
* nscd/nscd_initgroups.c: Likewise.
* nscd/nscd.h: Add declaretion of addinitgroups and
readdinitgroups.
* 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-02-26 Ulrich Drepper <drepper@redhat.com>
* nss/getXXbyYY_r.c: Pass result also to the nscd_* function. Don't
set *result here.
* nscd/nscd_proto.h: Add new argument for pointer to result pointer
to all nscd_* functions.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Add new parameter. Store result
pointer in the address provided by the new parameter if successful.
Otherwise store NULL. Return zero if no entry found.
(__nscd_getgrnam_r, __nscd_getgrgid_r): Add new parameter and pass
it on.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Add new parameter. Store
result pointer in the address provided by the new parameter if
successful. Otherwise store NULL. Return zero if no entry found.
(__nscd_gethostbyname_r, __nscd_gethostbyname2_r,
__nscd_gethostbyaddr_r): Add new parameter and pass it on.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Add new parameter. Store result
pointer in the address provided by the new parameter if successful.
Otherwise store NULL. Return zero if no entry found.
(__nscd_getpwnam_r, __nscd_getpwuid_r): Add new parameter and pass
it on.
2003-04-22 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd-client.h: Add declaration for __nscd_open_socket.
* nscd/nscd_gethst_r.c (__nscd_open_socket): Renamed from
open_socket. Not static anymore.
(nscd_gethst_r): Use __nscd_open_socket.
* nscd/nscd_getgr_r.c (open_socket): Removed.
(nscd_getgr_r): Use __nscd_open_socket.
* nscd/nscd_getpw_r.c (open_socket): Removed.
(nscd_getpw_r): Use __nscd_open_socket.
* nscd/nscd.c (main): Change type of fdn to long int and use strtol.
* nscd/connections.c (handle_request): Add cast to avoid warning.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
* gmon/gmon.c (write_call_graph): Use u_long for FROM_LEN.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Use nscd_ssize_t for CNT.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Consolidate writing of the
request with one writev call. Protect all read calls with
TEMP_FAILURE_RETRY.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
* nscd/hstcache.c: Use extend_alloca to reallocate alloca'd buffer.
Protect writev calls with TEMP_FAILURE_RETRY.
* nscd/grpcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
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.
* nss/getXXbyYY_r.c: Return error code not -1.
* nss/getXXent_r.c: Likewise.
* nss/getXXbyYY.c: Expect return alue to be ERANGE if buffer is too
small.
* nscd/nscd_getgr_r.c: Return -1 in case nscd is not available and
value > 0 for error.
* nscd/nscd_gethst_r.c: Likewise.
* nscd/nscd_getpw_r.c: Likewise.
1999-06-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/bits/ioctl-types.h: Add missing line
disciplines.
1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nscd/nscd_nischeck.c: Fix typos.
1999-06-17 Ulrich Drepper <drepper@cygnus.com>
1999-03-13 Mark Kettenis <kettenis@gnu.org>
* sysdeps/unix/bsd/getpt.c (__getpt): Do not use `isatty' to check
if the opened master pty really is a pty. `isatty' checks for
tty-ness and a pty is not a tty. Return ENOENT instead of ENFILE
if we are out of pty's.
1999-03-13 Mark Kettenis <kettenis@gnu.org>
* sysdeps/generic/utmp_file.c (setutent_file): Make sure the just
opened file is closed on exec.
* login/utmp_daemon.c (setutent_daemon): Likewise for the just
opened socket.
1999-03-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/llio.texi (File Position Primitive): Reformat @end
command. Patch by Bruno Haible <haible@ilog.fr> [PR libc/1020].
* nscd/nscd_getpw_r.c (nscd_getpw_r): Set `errno' correctly if no
entry is found.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Mark as internal and take
extra argument with length of key string.
(__nscd_getpwnam_r): Call nscd_getpw_r with extra argument.
(__nscd_getpwuid_r): Create key string on stack.
* nscd/nscd_getgr_r.c: Mark local functions as internal.
* nscd/nscd_gethst_r.c: Likewise.
1999-01-11 Ulrich Drepper <drepper@cygnus.com>
* ctype/Versions [GLIBC_2.0]: Export __ctype32_b.
* include/wctype.h: Declare __iswctype.
* stdio-common/vfscanf.c (__vfscanf): Use __iswspace instead of
iswspace.
* wctype/Makefile (routines): Add wcextra_l.
* wctype/wcextra.c (iswblank): Implement function here and don't use
__iswctype.
(__iswblank_l): Move definition to...
* wctype/wcextra_l.c: ...here. New file.
* wctype/wcfuncs.c: Really implement functions and don't call
__iswctype or __towctrans.
* wctype/wctype.h: Change isw* and tow* macros. Don't call
__iswctype or __towctrans. Instead optimize constant argument case.
* iconv/gconv.h: Fix typos.
* iconv/skeleton.c: Fix typos. Optimize init function a bit.
Correctly emit escape sequence to return to initial state in
conversion function.
* iconvdata/iso-2022-jp.c (gconv_init): Correctly initialize
max_needed_to element.
* manual/mbyte.texi: Removed. This is now described in charset.texi.
* manual/charset.texi: New file.
* manual/Makefile (chapters): Replace mbyte by charset.
* manual/ctype.texi: Document wide character functions.
* manual/intro.texi: Fix reference to mbyte chapter.
* manual/lang.texi: Likewise.
* manual/locale.texi: Likewise.
* manual/stdio.texi: Likewise.
* manual/string.texi: Fix @node line for new charset chapter.
* manual/libc.texinfo (UPDATED): Updated. Also update copyright years.
* manual/memory.texi (savestring): Optimize code to give a good
example.
* manual/filesys.texi: Fix wording. Patches by Jim Meyering.
* nscd/nscd_getgr_r.c: Include stdint.h to get uintptr_t definition.
* nscd/nscd_getpw_r.c: Likewise.
* nscd/nscd_gethst_r.c: Likewise.
* stdlib/stdtold_l.c: Always include xlocale.h.
1999-01-11 Geoffrey Keating <geoffk@ozemail.com.au>
* stdlib/fpioconst.h (LDBL_MAX_10_EXP_LOG): Define to be same as
DBL_MAX_10_EXP_LOG if there is no long double.
(_fpioconst_pow10): Always use size as LDBL_MAX_10_EXP_LOG to match
printf_fp.c.
1999-01-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* timezone/Makefile ($(testdata)/GB): Changed to ...
($(testdata)/Europe/London): ... for tst-timezone test.
($(objpfx)tst-timezone.out): Change GB to Europe/London.
* timezone/tst-timezone.c (main): Enable DST switching test,
change GB to Europe/London.
1999-01-10 Philip Blundell <philb@gnu.org>
* socket/Makefile (headers): Remove bits/sockunion.h.
1999-01-09 Philip Blundell <philb@gnu.org>
* socket/sys/socket.h: Don't include <bits/sockunion.h>.
* sysdeps/generic/bits/sockunion.h: Deleted.
* sysdeps/unix/sysv/linux/bits/sockunion.h: Likewise.
1999-01-08 H.J. Lu <hjl@gnu.org>
* io/fts.c (fts_close): Don't access memory after having it freed.
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes.
* sysdeps/generic/errno-loc.c: Include <errno.h> for prototype,
undefine errno to get variable.
* sysdeps/unix/sysv/linux/i386/setfsuid.c: Include <sys/fsuid.h>
instead of <unistd.h> for prototype.
* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
1998-11-30 Ulrich Drepper <drepper@cygnus.com>
* misc/err.h: Correct comments and use protected attribute keywords.
Reported by Joseph Myers <jsm28@cam.ac.uk>.
1998-11-29 Roland McGrath <roland@baalperazim.frob.com>
* malloc/thread-m.h [_LIBC]: Include <bits/libc-tsd.h>, and
remove tsd stuff from pthreads/cthreads libc sections.
Use __libc_tsd_define for MALLOC key.
[_LIBC] (tsd_key_t, tsd_key_create): Define to a zero-size type and a
no-op, respectively.
[_LIBC] (tsd_setspecific, tsd_getspecific): Use __libc_tsd_get/set.
* elf/dl-error.c: Include <bits/libc-tsd.h>.
Use __libc_tsd_define for DL_ERROR key.
(tsd_setspecific, tsd_getspecific): Rewritten using __libc_tsd_get/set.
* sysdeps/mach/hurd/bits/libc-tsd.h: New file.
* sysdeps/generic/bits/libc-tsd.h: New file.
* Makefile (distribute): Add bits/libc-tsd.h.
1998-10-12 Roland McGrath <roland@baalperazim.frob.com>
* elf/dl-error.c: Remove kludge to check for ld.so load address.
There is no need if weak undefined symbols are not used in ld.so;
see linuxthreads/ChangeLog for changes to files
linuxthreads/sysdeps/pthread/bits/libc-lock.h and
linuxthreads/sysdeps/pthread/bits/libc-tsd.h.
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/i386/bits/string.h (__memset_cc): Fix typo (s->__s).
* sysdeps/i386/i486/bits/string.h: Add prototypes for all new
inline functions.
* sysdeps/i386/bits/string.h: Likewise.
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Remove ipc_kludge.
1998-11-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* db2/progs/db_load/db_load.c (main): Avoid -Wparentheses warning.
* 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.
* nscd/nscd_getgr_r.c, nscd/nscd_gethst_r.c, nscd/nscd_getpw_r.c:
Include "nscd-client.h" instead of "nscd.h"
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-04-08 Ulrich Drepper <drepper@cygnus.com>
* login/utmp_file.c: use __ftruncate not ftruncate.
* sysdeps/unix/common/syscalls.list: Add __ftruncate as real name
for system call and make ftruncate weak alias.
* posix/unistd.h: Add prototype for __ftruncate.
* login/utmp_daemon.c (open_socket): Use __socket not socket.
* nscd/nscd_getpw_r.c (__nscd_getpw_r): use __snprintf and __readv
instead of snprintf and readv.
* nscd/nscd_getgr_r.c (__nscd_getgr_r): Use __snprintf not
snprintf.
* stdlib/strtod.c: Call strtoull/wcstoull's internal functions
directly.
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.
1998-03-05 Ulrich Drepper <drepper@cygnus.com>
* elf/rtld.c: Speed up processing of environment variables. Do
only one run on the environment by avoiding to call getenv.
* sysdeps/generic/dl-sysdep.c (_dl_next_ld_env_entry): New
function. Used by patch above.
1998-03-05 10:25 Ulrich Drepper <drepper@cygnus.com>
* nss/getXXbyYY_r.c: Don't try to contact nscd every time when it
failed. Only do this every NSS_NSCD_RETRY times.
* nss/nsswitch.c: Define __nss_nscd_not_available, used by above
change.
* nscd/nscd_getgr_r.c (__nscd_getgr_r): Return 2 if contacting the
daemon failed.
* nscd/nscd_getpw_r.c (__nscd_getpw_r): Likewise.
1998-03-05 Ulrich Drepper <drepper@cygnus.com>
* nss/nsswitch.c (nss_lookup_function): Don't modify errno if NSS
module cannot be found. Reported by Andreas Jaeger.
1998-03-05 11:40 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* nscd/nscd_getgr_r.c: Change char to int to avoid compiler warning
on platforms which default to unsigned chars.
* nscd/nscd_getpw_r.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/sysdep.h: Undefine L before
defining it.
1998-03-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* elf/Makefile (install-bin): Change = to += for sprof to install
ldd also.
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.