diff options
author | Roland McGrath <roland@gnu.org> | 2002-09-12 02:58:43 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-09-12 02:58:43 +0000 |
commit | 9bfce4bf2865c2981a8d790ae7f6c50c4e87dd97 (patch) | |
tree | 3d870712dd378958807f0dc88d82884413168289 /nss | |
parent | 049e7c97d6f4d191717b06ede1da40965f032148 (diff) | |
download | glibc-9bfce4bf2865c2981a8d790ae7f6c50c4e87dd97.tar.gz glibc-9bfce4bf2865c2981a8d790ae7f6c50c4e87dd97.tar.xz glibc-9bfce4bf2865c2981a8d790ae7f6c50c4e87dd97.zip |
* nss/getnssent_r.c (__nss_getent_r): Use EAGAIN instead of errno
when using h_errno and it's not set to NETDB_INTERNAL. * nss/getXXbyYY_r.c [NEED_H_ERRNO]: Likewise. * Makefile ($(common-objpfx)testrun.sh): New target. (others): Depend on it. (postclean-generated): Append it.
Diffstat (limited to 'nss')
-rw-r--r-- | nss/getXXbyYY_r.c | 7 | ||||
-rw-r--r-- | nss/getnssent_r.c | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index 58cf29300f..020848024b 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -244,6 +244,13 @@ done: #endif return (status == NSS_STATUS_SUCCESS ? 0 : (status == NSS_STATUS_TRYAGAIN ? errno : ENOENT)); + return (status == NSS_STATUS_SUCCESS ? 0 + : status != NSS_STATUS_TRYAGAIN ? ENOENT +#ifdef NEED_H_ERRNO + /* These functions only set errno if h_errno is NETDB_INTERNAL. */ + : *h_errnop != NETDB_INTERNAL ? EAGAIN +#endif + : errno); } diff --git a/nss/getnssent_r.c b/nss/getnssent_r.c index 39c867ce79..c1f8965363 100644 --- a/nss/getnssent_r.c +++ b/nss/getnssent_r.c @@ -197,6 +197,9 @@ __nss_getent_r (const char *getent_func_name, } *result = status == NSS_STATUS_SUCCESS ? resbuf : NULL; - return (status == NSS_STATUS_SUCCESS - ? 0 : status == NSS_STATUS_TRYAGAIN ? errno : ENOENT); + return (status == NSS_STATUS_SUCCESS ? 0 + : status != NSS_STATUS_TRYAGAIN ? ENOENT + /* h_errno functions only set errno if h_errno is NETDB_INTERNAL. */ + : (h_errnop == NULL || *h_errnop == NETDB_INTERNAL) ? errno + : EAGAIN); } |