From: Ondřej Surý Date: Fri, 7 Jan 2022 12:14:12 +0000 (+0100) Subject: Remove the workaround for broken handling of NOTIFY with SOA X-Git-Tag: v9.18.0~22^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a0c4355d260456b05415160a03b4d94df5cf916;p=thirdparty%2Fbind9.git 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. --- 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); }