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
macros replace the i686 versions for 64-bit mode.
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
{
int is_last_nip = *nip == *last_nip;
enum nss_status status;
-
+
if (stayopen_tmp)
status = DL_CALL_FCT (fct, (*stayopen_tmp));
else
if (res && (_res.options & RES_INIT) == 0
&& __res_ninit (&_res) == -1)
{
- __set_h_errno (NETDB_INTERNAL);
+ *h_errnop = NETDB_INTERNAL;
*result = NULL;
return errno;
}
}
*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);
}