2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +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,25 +4297,27 @@ 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) &&
* It's very likely they don't like EDNS0. (query->options & DNS_FETCHOPT_NOEDNS0) == 0) {
* /*
* XXXRTH We should check if the question * It's very likely they don't like EDNS0.
* we're asking requires EDNS0, and *
* if so, we should bail out. * XXXRTH We should check if the question
*/ * we're asking requires EDNS0, and
options |= DNS_FETCHOPT_NOEDNS0; * if so, we should bail out.
resend = ISC_TRUE; */
/* options |= DNS_FETCHOPT_NOEDNS0;
* Remember that they don't like EDNS0. resend = ISC_TRUE;
*/ /*
dns_adb_changeflags(fctx->adb, * Remember that they don't like EDNS0.
query->addrinfo, */
DNS_FETCHOPT_NOEDNS0, dns_adb_changeflags(fctx->adb, query->addrinfo,
DNS_FETCHOPT_NOEDNS0); DNS_FETCHOPT_NOEDNS0,
} else if (ISFORWARDER(query->addrinfo)) { DNS_FETCHOPT_NOEDNS0);
} 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.