Commit f274cbea authored by Mark Andrews's avatar Mark Andrews
Browse files

3992. [func] DiG can now send queries without questions

                        (dig +header-only). [RT #37599]
parent 00fb0253
3992. [func] DiG can now send queries without questions
(dig +header-only). [RT #37599]
3991. [func] Add the ability to buffer logging output by specifying
"buffered yes;" when defining a channel. [RT #26561]
......
......@@ -230,6 +230,7 @@ help(void) {
" +[no]dnssec (Request DNSSEC records)\n"
" +[no]expire (Request time to expire)\n"
" +[no]nsid (Request Name Server ID)\n"
" +[no]header-only (Send query without a question section)\n"
#ifdef ISC_PLATFORM_USESIT
" +[no]sit (Request a Source Identity Token)\n"
#endif
......@@ -1017,6 +1018,10 @@ plus_option(char *option, isc_boolean_t is_batchfile,
FULLCHECK("fail");
lookup->servfail_stops = state;
break;
case 'h':
FULLCHECK("header-only");
lookup->header_only = state;
break;
case 'i':
switch (cmd[1]) {
case 'd': /* identify */
......
......@@ -622,6 +622,17 @@
</listitem>
</varlistentry>
<varlistentry>
<term><option>+[no]header-only</option></term>
<listitem>
<para>
Send a query with a DNS header without a question section.
The default is to add a question section. The query type
and query name are ignored when this is set.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>+[no]identify</option></term>
<listitem>
......
......@@ -786,6 +786,7 @@ make_empty_lookup(void) {
looknew->ednsflags = 0;
looknew->expire = ISC_FALSE;
looknew->nsid = ISC_FALSE;
looknew->header_only = ISC_FALSE;
#ifdef ISC_PLATFORM_USESIT
looknew->sit = ISC_FALSE;
#endif
......@@ -881,6 +882,7 @@ clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers) {
looknew->ednsflags = lookold->ednsflags;
looknew->expire = lookold->expire;
looknew->nsid = lookold->nsid;
looknew->header_only = lookold->header_only;
#ifdef ISC_PLATFORM_USESIT
looknew->sit = lookold->sit;
looknew->sitvalue = lookold->sitvalue;
......@@ -2431,8 +2433,9 @@ setup_lookup(dig_lookup_t *lookup) {
}
}
add_question(lookup->sendmsg, lookup->name, lookup->rdclass,
lookup->rdtype);
if (!lookup->header_only)
add_question(lookup->sendmsg, lookup->name, lookup->rdclass,
lookup->rdtype);
/* add_soa */
if (lookup->rdtype == dns_rdatatype_ixfr)
......
......@@ -135,7 +135,8 @@ struct dig_lookup {
#ifdef ISC_PLATFORM_USESIT
sit,
#endif
nsid; /*% Name Server ID (RFC 5001) */
nsid, /*% Name Server ID (RFC 5001) */
header_only;
#ifdef DIG_SIGCHASE
isc_boolean_t sigchase;
#if DIG_SIGCHASE_TD
......
......@@ -127,6 +127,12 @@
yet-to-be-defined EDNS flags in DNS requests.
</para>
</listitem>
<listitem>
<para>
<command>dig +header-only</command> can now be used to send
queries without a question section.
</para>
</listitem>
<listitem>
<para>
<command>dig +ttlunits</command> causes <command>dig</command>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment