]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4204. [bug] 'dig +trace' failed to lookup the correct type if
authorMark Andrews <marka@isc.org>
Fri, 11 Sep 2015 23:04:37 +0000 (09:04 +1000)
committerMark Andrews <marka@isc.org>
Fri, 11 Sep 2015 23:04:37 +0000 (09:04 +1000)
                        the initial root ns query was retried. [RT #40296]
`

CHANGES
bin/dig/dighost.c

diff --git a/CHANGES b/CHANGES
index 5a7cfd88d5af43133a7ffffb185a0fd639eef3a7..e4556d84725fcc712ae090ccd04bb42b8559a9a8 100644 (file)
--- 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]
 
index 075309529955d20c0d7b2e1fbaee5973d1a4d1d3..7dc536c9284c84314ad0f8cb09d5bb5efeb8fe87 100644 (file)
@@ -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);