2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +00:00

Merge branch '3086-remove-workaround-for-server-mishandling-notify-with-soa-record-in-answer-section' into 'main'

Remove the workaround for broken handling of NOTIFY with SOA

Closes #3086

See merge request isc-projects/bind9!5704
This commit is contained in:
Ondřej Surý
2022-01-13 16:56:19 +00:00
2 changed files with 8 additions and 22 deletions

View File

@@ -1,3 +1,7 @@
5791. [func] Remove workaround for servers returning FORMERR
when receiving NOTIFY query with SOA record in
ANSWER section. [GL #3086]
5790. [bug] The control channel was incorrectly looking for
ISC_R_CANCELED as a signal that the named is
shutting down. In the dispatch refactoring,

View 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);
}