mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
3810. [bug] Work around broken nameservers that fail to ignore
unknown EDNS options. [RT #35766]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
3810. [bug] Work around broken nameservers that fail to ignore
|
||||||
|
unknown EDNS options. [RT #35766]
|
||||||
|
|
||||||
3809. [doc] Fix SIT and NSID documentation.
|
3809. [doc] Fix SIT and NSID documentation.
|
||||||
|
|
||||||
3808. [doc] Clean up "prefetch" documentation. [RT #35751]
|
3808. [doc] Clean up "prefetch" documentation. [RT #35751]
|
||||||
|
@@ -7455,6 +7455,24 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
|||||||
*/
|
*/
|
||||||
if (message->rcode != dns_rcode_noerror &&
|
if (message->rcode != dns_rcode_noerror &&
|
||||||
message->rcode != dns_rcode_nxdomain) {
|
message->rcode != dns_rcode_nxdomain) {
|
||||||
|
#ifdef ISC_PLATFORM_USESIT
|
||||||
|
unsigned char sit[64];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some servers do not ignore unknown EDNS options.
|
||||||
|
*/
|
||||||
|
if (!NOSIT(query->addrinfo) &&
|
||||||
|
(message->rcode == dns_rcode_formerr ||
|
||||||
|
message->rcode == dns_rcode_notimp ||
|
||||||
|
message->rcode == dns_rcode_refused) &&
|
||||||
|
dns_adb_getsit(fctx->adb, query->addrinfo,
|
||||||
|
sit, sizeof(sit)) == 0U) {
|
||||||
|
dns_adb_changeflags(fctx->adb, query->addrinfo,
|
||||||
|
FCTX_ADDRINFO_NOSIT,
|
||||||
|
FCTX_ADDRINFO_NOSIT);
|
||||||
|
resend = ISC_TRUE;
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
if (((message->rcode == dns_rcode_formerr ||
|
if (((message->rcode == dns_rcode_formerr ||
|
||||||
message->rcode == dns_rcode_notimp) ||
|
message->rcode == dns_rcode_notimp) ||
|
||||||
(message->rcode == dns_rcode_servfail &&
|
(message->rcode == dns_rcode_servfail &&
|
||||||
|
Reference in New Issue
Block a user