* nss/getnssent_r.c (__nss_getent_r): Return ENOENT if status is

neither SUCCESS nor TRYAGAIN (see 2002-08-25 change [PR libc/4259]).

	* nss/getnssent_r.c (__nss_getent_r): Set *H_ERRNOP, not global one.
This commit is contained in:
Roland McGrath 2002-08-31 00:02:18 +00:00
parent e932b4062e
commit 8fea756af2
2 changed files with 10 additions and 4 deletions

View File

@ -1,5 +1,10 @@
2002-08-30 Roland McGrath <roland@redhat.com> 2002-08-30 Roland McGrath <roland@redhat.com>
* nss/getnssent_r.c (__nss_getent_r): Return ENOENT if status is
neither SUCCESS nor TRYAGAIN (see 2002-08-25 change [PR libc/4259]).
* nss/getnssent_r.c (__nss_getent_r): Set *H_ERRNOP, not global one.
* sysdeps/x86_64/hp-timing.h (HP_TIMING_NOW, HP_TIMING_ACCUM): New * sysdeps/x86_64/hp-timing.h (HP_TIMING_NOW, HP_TIMING_ACCUM): New
macros replace the i686 versions for 64-bit mode. macros replace the i686 versions for 64-bit mode.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2000 Free Software Foundation, Inc. /* Copyright (C) 2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -71,7 +71,7 @@ __nss_setent (const char *func_name, db_lookup_function lookup_fct,
{ {
int is_last_nip = *nip == *last_nip; int is_last_nip = *nip == *last_nip;
enum nss_status status; enum nss_status status;
if (stayopen_tmp) if (stayopen_tmp)
status = DL_CALL_FCT (fct, (*stayopen_tmp)); status = DL_CALL_FCT (fct, (*stayopen_tmp));
else else
@ -136,7 +136,7 @@ __nss_getent_r (const char *getent_func_name,
if (res && (_res.options & RES_INIT) == 0 if (res && (_res.options & RES_INIT) == 0
&& __res_ninit (&_res) == -1) && __res_ninit (&_res) == -1)
{ {
__set_h_errno (NETDB_INTERNAL); *h_errnop = NETDB_INTERNAL;
*result = NULL; *result = NULL;
return errno; return errno;
} }
@ -197,5 +197,6 @@ __nss_getent_r (const char *getent_func_name,
} }
*result = status == NSS_STATUS_SUCCESS ? resbuf : NULL; *result = status == NSS_STATUS_SUCCESS ? resbuf : NULL;
return status == NSS_STATUS_SUCCESS ? 0 : errno; return (status == NSS_STATUS_SUCCESS
? 0 : status == NSS_STATUS_TRYAGAIN ? errno : ENOENT);
} }