From 8a0c4355d260456b05415160a03b4d94df5cf916 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Fri, 7 Jan 2022 13:14:12 +0100 Subject: [PATCH] Remove the workaround for broken handling of NOTIFY with SOA In 2000, old BIND instances (BIND 8?) would return FORMERR if the SOA is included in the NOTIFY. Remove the workaround that detected the state and resent the NOTIFY without SOA record. --- lib/dns/zone.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/dns/zone.c b/lib/dns/zone.c index d6e977770ea..e94f1d886f1 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -16276,30 +16276,12 @@ notify_done(isc_task_t *task, isc_event_t *event) { isc_result_totext(result)); } - /* - * Old bind's return formerr if they see a soa record. Retry w/o - * the soa if we see a formerr and had sent a SOA. - */ isc_event_free(&event); - if (message->rcode == dns_rcode_formerr && - (notify->flags & DNS_NOTIFY_NOSOA) == 0) - { - bool startup; - - notify->flags |= DNS_NOTIFY_NOSOA; - dns_request_destroy(¬ify->request); - startup = (notify->flags & DNS_NOTIFY_STARTUP); - result = notify_send_queue(notify, startup); - if (result != ISC_R_SUCCESS) { - notify_destroy(notify, false); - } - } else { - if (result == ISC_R_TIMEDOUT) { - notify_log(notify->zone, ISC_LOG_DEBUG(1), - "notify to %s: retries exceeded", addrbuf); - } - notify_destroy(notify, false); + if (result == ISC_R_TIMEDOUT) { + notify_log(notify->zone, ISC_LOG_DEBUG(1), + "notify to %s: retries exceeded", addrbuf); } + notify_destroy(notify, false); dns_message_detach(&message); } -- 2.47.3