svn commit: r211957 - stable/7/lib/libc/net
Hajimu UMEMOTO
ume at FreeBSD.org
Sun Aug 29 03:55:39 UTC 2010
Author: ume
Date: Sun Aug 29 03:55:39 2010
New Revision: 211957
URL: http://svn.freebsd.org/changeset/base/211957
Log:
MFC r211340: Correct the return code from _dns_gethostby*()
to correspond with h_errno.
Modified:
stable/7/lib/libc/net/gethostbydns.c
Directory Properties:
stable/7/lib/libc/ (props changed)
stable/7/lib/libc/stdtime/ (props changed)
Modified: stable/7/lib/libc/net/gethostbydns.c
==============================================================================
--- stable/7/lib/libc/net/gethostbydns.c Sun Aug 29 03:53:17 2010 (r211956)
+++ stable/7/lib/libc/net/gethostbydns.c Sun Aug 29 03:55:39 2010 (r211957)
@@ -522,18 +522,26 @@ _dns_gethostbyname(void *rval, void *cb_
free(buf);
dprintf("res_nsearch failed (%d)\n", n, statp);
*h_errnop = statp->res_h_errno;
- return (0);
+ return (NS_NOTFOUND);
} else if (n > sizeof(buf->buf)) {
free(buf);
dprintf("static buffer is too small (%d)\n", n, statp);
*h_errnop = statp->res_h_errno;
- return (0);
+ return (NS_UNAVAIL);
}
error = gethostanswer(buf, n, name, type, &he, hed, statp);
free(buf);
if (error != 0) {
*h_errnop = statp->res_h_errno;
- return (NS_NOTFOUND);
+ switch (statp->res_h_errno) {
+ case HOST_NOT_FOUND:
+ return (NS_NOTFOUND);
+ case TRY_AGAIN:
+ return (NS_TRYAGAIN);
+ default:
+ return (NS_UNAVAIL);
+ }
+ /*NOTREACHED*/
}
if (__copy_hostent(&he, hptr, buffer, buflen) != 0) {
*errnop = errno;
@@ -632,7 +640,15 @@ _dns_gethostbyaddr(void *rval, void *cb_
if (gethostanswer(buf, n, qbuf, T_PTR, &he, hed, statp) != 0) {
free(buf);
*h_errnop = statp->res_h_errno;
- return (NS_NOTFOUND); /* h_errno was set by gethostanswer() */
+ switch (statp->res_h_errno) {
+ case HOST_NOT_FOUND:
+ return (NS_NOTFOUND);
+ case TRY_AGAIN:
+ return (NS_TRYAGAIN);
+ default:
+ return (NS_UNAVAIL);
+ }
+ /*NOTREACHED*/
}
free(buf);
#ifdef SUNSECURITY
More information about the svn-src-stable-7
mailing list