mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-08 20:42:06 -04:00
ensure dig sets exitcode after local UDP connection failure
dig previously set an exit code of 9 when a TCP connection failed or when a UDP connection timed out, but when the server address is localhost it's possible for a UDP query to fail with ISC_R_CONNREFUSED. that code path didn't update the exit code, causing dig to exit with status 0. we now set the exit code to 9 in this failure case.
This commit is contained in:
parent
9fb812763a
commit
4eee6460ff
1 changed files with 6 additions and 0 deletions
|
|
@ -3120,6 +3120,10 @@ udp_ready(isc_nmhandle_t *handle, isc_result_t eresult, void *arg) {
|
|||
dig_lookup_t *l = query->lookup;
|
||||
|
||||
debug("udp setup failed: %s", isc_result_totext(eresult));
|
||||
|
||||
if (exitcode < 9) {
|
||||
exitcode = 9;
|
||||
}
|
||||
query_detach(&query);
|
||||
cancel_lookup(l);
|
||||
lookup_detach(&l);
|
||||
|
|
@ -3980,6 +3984,8 @@ recv_done(isc_nmhandle_t *handle, isc_result_t eresult, isc_region_t *region,
|
|||
|
||||
if (eresult == ISC_R_EOF) {
|
||||
requeue_or_update_exitcode(l);
|
||||
} else if (exitcode < 9) {
|
||||
exitcode = 9;
|
||||
}
|
||||
|
||||
goto cancel_lookup;
|
||||
|
|
|
|||
Loading…
Reference in a new issue