+5237. [bug] Recurse to find the root server list with 'dig +trace'.
+ [GL #1028]
+
--- 9.11.7 released ---
5233. [bug] Negative trust anchors did not work with "forward only;"
lookup->trace = state;
lookup->trace_root = state;
if (state) {
- lookup->recurse = false;
+ lookup->recurse = true;
lookup->identify = true;
lookup->comments = false;
rrcomments = 0;
in the query. This bit is set by default, which means
<command>dig</command> normally sends recursive
queries. Recursion is automatically disabled when
- the <parameter>+nssearch</parameter> or
- <parameter>+trace</parameter> query options are used.
+ using the <parameter>+nssearch</parameter> option, and
+ when using <parameter>+trace</parameter> except for
+ an initial recursive query to get the list of root
+ servers.
</para>
</listitem>
</varlistentry>
lookup->sendmsg->id = (unsigned short)id & 0xFFFF;
lookup->sendmsg->opcode = lookup->opcode;
lookup->msgcounter = 0;
+
/*
- * If this is a trace request, completely disallow recursion, since
- * it's meaningless for traces.
+ * If this is a trace request, completely disallow recursion after
+ * looking up the root name servers, since it's meaningless for traces.
*/
- if (lookup->trace || (lookup->ns_search_only && !lookup->trace_root))
+ if ((lookup->trace || lookup->ns_search_only) && !lookup->trace_root) {
lookup->recurse = false;
+ }
if (lookup->recurse &&
lookup->rdtype != dns_rdatatype_axfr &&