]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove the workaround for broken handling of NOTIFY with SOA
authorOndřej Surý <ondrej@isc.org>
Fri, 7 Jan 2022 12:14:12 +0000 (13:14 +0100)
committerOndřej Surý <ondrej@isc.org>
Thu, 13 Jan 2022 16:09:43 +0000 (17:09 +0100)
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

index d6e977770ea4ca241eb38f73ec5f32537c455bc4..e94f1d886f1b803289e3c840f358bc7cd6aed49e 100644 (file)
@@ -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(&notify->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);
 }