mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-10 16:59:59 -04:00
Don't retry notify over TCP if it could not successed
Prevent retrying the notify over TCP in case the source address is not
available or the source vs the destination address family mismatch or
when the destination address has been blackholed. Properly log the
hard notify failures.
(cherry picked from commit 5a5bc6de22)
This commit is contained in:
parent
e68aa79e2a
commit
9213c42bc0
1 changed files with 19 additions and 8 deletions
|
|
@ -12747,7 +12747,8 @@ again:
|
|||
|
||||
isc_tlsctx_cache_detach(&zmgr_tlsctx_cache);
|
||||
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
switch (result) {
|
||||
case ISC_R_SUCCESS:
|
||||
if (isc_sockaddr_pf(¬ify->dst) == AF_INET) {
|
||||
inc_stats(notify->zone,
|
||||
dns_zonestatscounter_notifyoutv4);
|
||||
|
|
@ -12755,14 +12756,24 @@ again:
|
|||
inc_stats(notify->zone,
|
||||
dns_zonestatscounter_notifyoutv6);
|
||||
}
|
||||
} else if (result == ISC_R_SHUTTINGDOWN || result == ISC_R_CANCELED) {
|
||||
goto cleanup_key;
|
||||
} else if ((notify->flags & DNS_NOTIFY_TCP) == 0) {
|
||||
break;
|
||||
case ISC_R_SHUTTINGDOWN:
|
||||
case ISC_R_CANCELED:
|
||||
case ISC_R_ADDRNOTAVAIL:
|
||||
case DNS_R_BLACKHOLED:
|
||||
case ISC_R_FAMILYNOSUPPORT:
|
||||
notify_log(notify->zone, ISC_LOG_NOTICE,
|
||||
"notify to %s failed: %s: retrying over TCP",
|
||||
addrbuf, isc_result_totext(result));
|
||||
notify->flags |= DNS_NOTIFY_TCP;
|
||||
goto again;
|
||||
"notify to %s failed: %s", addrbuf,
|
||||
isc_result_totext(result));
|
||||
break;
|
||||
default:
|
||||
if ((notify->flags & DNS_NOTIFY_TCP) == 0) {
|
||||
notify_log(notify->zone, ISC_LOG_NOTICE,
|
||||
"notify to %s failed: %s: retrying over TCP",
|
||||
addrbuf, isc_result_totext(result));
|
||||
notify->flags |= DNS_NOTIFY_TCP;
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
|
||||
cleanup_key:
|
||||
|
|
|
|||
Loading…
Reference in a new issue