+4586. [func] dig, host and nslookup now use TCP for ANY queries.
+ [RT #44687]
+
4585. [port] win32: Set CompileAS value. [RT #42474]
4584. [bug] A number of memory usage statistics were not properly
if (rdtype == dns_rdatatype_axfr) {
(*lookup)->section_question = plusquest;
(*lookup)->comments = pluscomm;
+ } else if (rdtype == dns_rdatatype_any) {
+ if (!(*lookup)->tcp_mode_set)
+ (*lookup)->tcp_mode = ISC_TRUE;
}
(*lookup)->ixfr_serial = ISC_FALSE;
}
plusquest;
lookup->comments = pluscomm;
}
+ if (rdtype ==
+ dns_rdatatype_any &&
+ !lookup->tcp_mode_set)
+ lookup->tcp_mode = ISC_TRUE;
lookup->ixfr_serial = ISC_FALSE;
}
continue;
<listitem>
<para>
Use [do not use] TCP when querying name servers. The
- default behavior is to use UDP unless an
- <literal>ixfr=N</literal> query is requested, in which
- case the default is TCP. AXFR queries always use
- TCP.
+ default behavior is to use UDP unless a type
+ <literal>any</literal> or <literal>ixfr=N</literal>
+ query is requested, in which case the default is TCP.
+ AXFR queries always use TCP.
</para>
</listitem>
</varlistentry>
return (result);
}
-static const char * optstring = "46aAc:dilnm:rst:vVwCDN:R:TW:";
+static const char * optstring = "46aAc:dilnm:rst:vVwCDN:R:TUW:";
/*% version */
static void
lookup->ixfr_serial = serial;
lookup->tcp_mode = ISC_TRUE;
list_type = rdtype;
+ } else if (rdtype == dns_rdatatype_any) {
+ if (!lookup->tcp_mode_set)
+ lookup->tcp_mode = ISC_TRUE;
#ifdef WITH_IDN
} else if (rdtype == dns_rdatatype_a ||
rdtype == dns_rdatatype_aaaa ||
break;
case 'T':
lookup->tcp_mode = ISC_TRUE;
+ lookup->tcp_mode_set = ISC_TRUE;
+ break;
+ case 'U':
+ lookup->tcp_mode = ISC_FALSE;
+ lookup->tcp_mode_set = ISC_TRUE;
break;
case 'C':
debug("showing all SOAs");
<refsynopsisdiv>
<cmdsynopsis sepchar=" ">
<command>host</command>
- <arg choice="opt" rep="norepeat"><option>-aACdlnrsTwv</option></arg>
+ <arg choice="opt" rep="norepeat"><option>-aACdlnrsTUwv</option></arg>
<arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">class</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-N <replaceable class="parameter">ndots</replaceable></option></arg>
<arg choice="opt" rep="norepeat"><option>-R <replaceable class="parameter">number</replaceable></option></arg>
<varlistentry>
<term>-T</term>
+ <term>-U</term>
<listitem>
<para>
- TCP:
+ TCP/UDP:
By default, <command>host</command> uses UDP when making
queries. The <option>-T</option> option makes it use a TCP
connection when querying the name server. TCP will be
automatically selected for queries that require it, such
- as zone transfer (AXFR) requests.
+ as zone transfer (AXFR) requests. Type ANY queries default
+ to TCP but can be forced to UDP initially using <option>-U</option>.
</para>
</listitem>
</varlistentry>
#endif
static isc_boolean_t short_form = ISC_TRUE,
- tcpmode = ISC_FALSE,
+ tcpmode = ISC_FALSE, tcpmode_set = ISC_FALSE,
identify = ISC_FALSE, stats = ISC_TRUE,
comments = ISC_TRUE, section_question = ISC_TRUE,
section_answer = ISC_TRUE, section_authority = ISC_TRUE,
usesearch = ISC_FALSE;
} else if (strncasecmp(opt, "vc", 3) == 0) {
tcpmode = ISC_TRUE;
+ tcpmode_set = ISC_TRUE;
} else if (strncasecmp(opt, "novc", 5) == 0) {
tcpmode = ISC_FALSE;
+ tcpmode_set = ISC_TRUE;
} else if (strncasecmp(opt, "deb", 3) == 0) {
short_form = ISC_FALSE;
showsearch = ISC_TRUE;
lookup->retries = tries;
lookup->udpsize = 0;
lookup->comments = comments;
- lookup->tcp_mode = tcpmode;
+ if (lookup->rdtype == dns_rdatatype_any && !tcpmode_set)
+ lookup->tcp_mode = ISC_TRUE;
+ else
+ lookup->tcp_mode = tcpmode;
lookup->stats = stats;
lookup->section_question = section_question;
lookup->section_answer = section_answer;
</varlistentry>
<varlistentry>
- <term><constant>
- <replaceable><optional>no</optional></replaceable>debug</constant></term>
+ <term><constant><replaceable><optional>no</optional></replaceable>debug</constant></term>
<listitem>
<para>
Turn on or off the display of the full response packet and
</varlistentry>
<varlistentry>
- <term><constant>
- <replaceable><optional>no</optional></replaceable>d2</constant></term>
+ <term><constant><replaceable><optional>no</optional></replaceable>d2</constant></term>
<listitem>
<para>
Turn debugging mode on or off. This displays more about
</varlistentry>
<varlistentry>
- <term><constant>
- <replaceable><optional>no</optional></replaceable>search</constant></term>
+ <term><constant><replaceable><optional>no</optional></replaceable>search</constant></term>
<listitem>
<para>
If the lookup request contains at least one period but
</varlistentry>
<varlistentry>
- <term><constant>
- <replaceable><optional>no</optional></replaceable>recurse</constant></term>
+ <term><constant><replaceable><optional>no</optional></replaceable>recurse</constant></term>
<listitem>
<para>
Tell the name server to query other servers if it does not
</varlistentry>
<varlistentry>
- <term><constant>
- <replaceable><optional>no</optional></replaceable>vc</constant></term>
+ <term><constant><replaceable><optional>no</optional></replaceable>vc</constant></term>
<listitem>
<para>
Always use a virtual circuit when sending requests to the
</varlistentry>
<varlistentry>
- <term><constant>
- <replaceable><optional>no</optional></replaceable>fail</constant></term>
+ <term><constant><replaceable><optional>no</optional></replaceable>fail</constant></term>
<listitem>
<para>
Try the next nameserver if a nameserver responds with