From: Mark Andrews Date: Fri, 11 Sep 2015 23:04:37 +0000 (+1000) Subject: 4204. [bug] 'dig +trace' failed to lookup the correct type if X-Git-Tag: v9.11.0a1~490 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=295a711b72b075a77065b7a952860269b5ae5d1d;p=thirdparty%2Fbind9.git 4204. [bug] 'dig +trace' failed to lookup the correct type if the initial root ns query was retried. [RT #40296] ` --- diff --git a/CHANGES b/CHANGES index 5a7cfd88d5a..e4556d84725 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4204. [bug] 'dig +trace' failed to lookup the correct type if + the initial root ns query was retried. [RT #40296] + 4203. [test] The rrchecker system test now tests conversion to and from unkonwn-type format. [RT #40584] diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 07530952995..7dc536c9284 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -3794,6 +3794,8 @@ recv_done(isc_task_t *task, isc_event_t *event) { l->edns = newedns; n = requeue_lookup(l, ISC_TRUE); n->origin = query->lookup->origin; + if (l->trace && l->trace_root) + n->rdtype = l->qrdtype; dns_message_destroy(&msg); isc_event_free(&event); clear_query(query); @@ -3811,6 +3813,8 @@ recv_done(isc_task_t *task, isc_event_t *event) { n = requeue_lookup(l, ISC_TRUE); n->tcp_mode = ISC_TRUE; n->origin = query->lookup->origin; + if (l->trace && l->trace_root) + n->rdtype = l->qrdtype; dns_message_destroy(&msg); isc_event_free(&event); clear_query(query); @@ -3831,6 +3835,8 @@ recv_done(isc_task_t *task, isc_event_t *event) { n->tcp_mode = ISC_TRUE; n->seenbadcookie = ISC_TRUE; n->origin = query->lookup->origin; + if (l->trace && l->trace_root) + n->rdtype = l->qrdtype; dns_message_destroy(&msg); isc_event_free(&event); clear_query(query);