2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00

1206. [bug] SERVFAIL and NOTIMP responses to a EDNS should trigger

a non-EDNS retry.
This commit is contained in:
Mark Andrews
2002-02-19 00:48:21 +00:00
parent 06b12bc497
commit c26c65b7a0
2 changed files with 25 additions and 20 deletions

View File

@@ -1,3 +1,6 @@
1206. [bug] SERVFAIL and NOTIMP responses to a EDNS should trigger
a non-EDNS retry.
1205. [bug] OPT, TSIG and TKEY cannot be used to set the "class" 1205. [bug] OPT, TSIG and TKEY cannot be used to set the "class"
of the message. [RT #2449] of the message. [RT #2449]

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: resolver.c,v 1.237 2002/02/05 19:44:55 bwelling Exp $ */ /* $Id: resolver.c,v 1.238 2002/02/19 00:48:21 marka Exp $ */
#include <config.h> #include <config.h>
@@ -4297,8 +4297,10 @@ 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) {
if (message->rcode == dns_rcode_formerr) { if ((message->rcode == dns_rcode_formerr ||
if ((query->options & DNS_FETCHOPT_NOEDNS0) == 0) { message->rcode == dns_rcode_notimp ||
message->rcode == dns_rcode_servfail) &&
(query->options & DNS_FETCHOPT_NOEDNS0) == 0) {
/* /*
* It's very likely they don't like EDNS0. * It's very likely they don't like EDNS0.
* *
@@ -4311,11 +4313,11 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
/* /*
* Remember that they don't like EDNS0. * Remember that they don't like EDNS0.
*/ */
dns_adb_changeflags(fctx->adb, dns_adb_changeflags(fctx->adb, query->addrinfo,
query->addrinfo,
DNS_FETCHOPT_NOEDNS0, DNS_FETCHOPT_NOEDNS0,
DNS_FETCHOPT_NOEDNS0); DNS_FETCHOPT_NOEDNS0);
} else if (ISFORWARDER(query->addrinfo)) { } else if (message->rcode == dns_rcode_formerr) {
if (ISFORWARDER(query->addrinfo)) {
/* /*
* This forwarder doesn't understand us, * This forwarder doesn't understand us,
* but other forwarders might. Keep trying. * but other forwarders might. Keep trying.