Handle the errors returned by res_querydomain() in same manner.
Reported by: yar Tested by: yar, Rostislav Krasny <rosti.bsd__at__gmail.com> MFC after: 1 week
This commit is contained in:
parent
925374d453
commit
3a0b3b6739
@ -2440,6 +2440,17 @@ res_searchN(name, target)
|
||||
ret = res_querydomainN(name, NULL, target);
|
||||
if (ret > 0 || trailing_dot)
|
||||
return (ret);
|
||||
if (errno == ECONNREFUSED) {
|
||||
h_errno = TRY_AGAIN;
|
||||
return (-1);
|
||||
}
|
||||
switch (h_errno) {
|
||||
case NO_DATA:
|
||||
case HOST_NOT_FOUND:
|
||||
break;
|
||||
default:
|
||||
return (-1);
|
||||
}
|
||||
saved_herrno = h_errno;
|
||||
tried_as_is++;
|
||||
}
|
||||
@ -2515,6 +2526,14 @@ res_searchN(name, target)
|
||||
}
|
||||
}
|
||||
|
||||
switch (h_errno) {
|
||||
case NO_DATA:
|
||||
case HOST_NOT_FOUND:
|
||||
break;
|
||||
default:
|
||||
goto giveup;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the query has not already been tried as is then try it
|
||||
* unless RES_NOTLDQUERY is set and there were no dots.
|
||||
@ -2534,6 +2553,7 @@ res_searchN(name, target)
|
||||
* else send back meaningless h_errno, that being the one from
|
||||
* the last DNSRCH we did.
|
||||
*/
|
||||
giveup:
|
||||
if (saved_herrno != -1)
|
||||
h_errno = saved_herrno;
|
||||
else if (got_nodata)
|
||||
|
@ -229,6 +229,17 @@ res_search(name, class, type, answer, anslen)
|
||||
ret = res_querydomain(name, NULL, class, type, answer, anslen);
|
||||
if (ret > 0 || trailing_dot)
|
||||
return (ret);
|
||||
if (errno == ECONNREFUSED) {
|
||||
h_errno = TRY_AGAIN;
|
||||
return (-1);
|
||||
}
|
||||
switch (h_errno) {
|
||||
case NO_DATA:
|
||||
case HOST_NOT_FOUND:
|
||||
break;
|
||||
default:
|
||||
return (-1);
|
||||
}
|
||||
saved_herrno = h_errno;
|
||||
tried_as_is++;
|
||||
}
|
||||
@ -318,6 +329,14 @@ res_search(name, class, type, answer, anslen)
|
||||
}
|
||||
}
|
||||
|
||||
switch (h_errno) {
|
||||
case NO_DATA:
|
||||
case HOST_NOT_FOUND:
|
||||
break;
|
||||
default:
|
||||
goto giveup;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the query has not already been tried as is then try it
|
||||
* unless RES_NOTLDQUERY is set and there were no dots.
|
||||
@ -336,6 +355,7 @@ res_search(name, class, type, answer, anslen)
|
||||
* else send back meaningless h_errno, that being the one from
|
||||
* the last DNSRCH we did.
|
||||
*/
|
||||
giveup:
|
||||
if (saved_herrno != -1)
|
||||
h_errno = saved_herrno;
|
||||
else if (got_nodata)
|
||||
|
Loading…
Reference in New Issue
Block a user