(getanswer_r): Sett *ERRNOP in error cases.
if (n < 0)
{
*h_errnop = h_errno;
- *errnop = errno;
+ *errnop = *h_errnop == TRY_AGAIN ? EAGAIN : ENOENT;
return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
}
name_ok = res_dnok;
break;
default:
+ *errnop = ENOENT;
return NSS_STATUS_UNAVAIL; /* XXX should be abort(); */
}
if (qdcount != 1)
{
*h_errnop = NO_RECOVERY;
+ *errnop = ENOENT;
return NSS_STATUS_UNAVAIL;
}
if (n >= MAXHOSTNAMELEN)
{
*h_errnop = NO_RECOVERY;
+ *errnop = ENOENT;
return NSS_STATUS_TRYAGAIN;
}
result->h_name = bp;
}
no_recovery:
*h_errnop = NO_RECOVERY;
+ *errnop = ENOENT;
return NSS_STATUS_TRYAGAIN;
}