diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-03-05 14:03:24 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-03-05 14:03:24 +0000 |
commit | ea278354429c511389edab51dcb588343652601d (patch) | |
tree | a78e3c472ce68aa2d1b1e5b415edd5f68e8969ec /nss/nsswitch.c | |
parent | 2eb45444a74df5f8d47ba14e318aff2e78a915db (diff) | |
download | glibc-ea278354429c511389edab51dcb588343652601d.zip glibc-ea278354429c511389edab51dcb588343652601d.tar.gz glibc-ea278354429c511389edab51dcb588343652601d.tar.bz2 |
Update.
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.
Diffstat (limited to 'nss/nsswitch.c')
-rw-r--r-- | nss/nsswitch.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/nss/nsswitch.c b/nss/nsswitch.c index 65da26b..2a3e44a 100644 --- a/nss/nsswitch.c +++ b/nss/nsswitch.c @@ -69,6 +69,9 @@ static struct __libc_lock_define_initialized (static, lock) +/* Nonzero if no NSCD is available. */ +int __nss_nscd_not_available; + #if !defined DO_STATIC_NSS || defined PIC /* String with revision number of the shared object files. */ static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15; @@ -380,7 +383,7 @@ nss_lookup_function (service_user *ni, const char *fct_name) /* Load the shared library. */ size_t shlen = (7 + strlen (ni->library->name) + 3 + strlen (__nss_shlib_revision) + 1); - + int saved_errno = errno; struct do_open_args args; args.shlib_name = __alloca (shlen); args.ni = ni; @@ -393,8 +396,11 @@ nss_lookup_function (service_user *ni, const char *fct_name) __nss_shlib_revision); if (nss_dlerror_run (do_open, &args) != 0) - /* Failed to load the library. */ - ni->library->lib_handle = (void *) -1l; + { + /* Failed to load the library. */ + ni->library->lib_handle = (void *) -1l; + __set_errno (saved_errno); + } } if (ni->library->lib_handle == (void *) -1l) |