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.
2002-09-11 Roland McGrath <roland@redhat.com>
+ * 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.
+
* nss/bug-erange.c: New file.
* nss/Makefile (tests): Add it.
# Build the shared object from the PIC object library.
lib: $(common-objpfx)libc.so
endif
+
+
+# This is a handy script for running any dynamically linked program against
+# the current libc build for testing.
+$(common-objpfx)testrun.sh: $(common-objpfx)config.make \
+ $(..)Makeconfig $(..)Makefile
+ (echo '#!/bin/sh'; \
+ echo "GCONV_PATH='$(common-objpfx)iconvdata' \\"; \
+ echo 'exec $(run-program-prefix) $${1+"$$@"}'; \
+ ) > $@T
+ chmod a+x $@T
+ mv -f $@T $@
+postclean-generated += testrun.sh
+
+others: $(common-objpfx)testrun.sh
\f
# Makerules creates a file `stubs' in each subdirectory, which
# contains `#define __stub_FUNCTION' for each function defined in that
#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);
}
}
*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);
}