]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3994. [func] Dig now supports setting the last unassigned DNS
authorMark Andrews <marka@isc.org>
Thu, 30 Oct 2014 23:16:00 +0000 (10:16 +1100)
committerMark Andrews <marka@isc.org>
Thu, 30 Oct 2014 23:16:00 +0000 (10:16 +1100)
                        header flag bit (dig +zflag). [RT #37421]

CHANGES
bin/dig/dig.c
bin/dig/dig.docbook
bin/dig/dighost.c
bin/dig/include/dig/dig.h
doc/arm/notes.xml

diff --git a/CHANGES b/CHANGES
index 83680886ff166f22bb91ec46b642c2c4de618226..597b3b93c1228c3e25524a0ab1cae0f8572c0f79 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3994.  [func]          Dig now supports setting the last unassigned DNS
+                       header flag bit (dig +zflag). [RT #37421]
+
 3993.  [func]          Dig now supports EDNS negotiation by default.
                        (dig +[no]ednsnegotiation). [RT #37604]
 
index 725c5203dd5e75e807f1a3685aabe6144a646d8c..4517c0dd5cfc05493186d2fd5cd7732fc63de650 100644 (file)
@@ -207,6 +207,7 @@ help(void) {
 "                 +[no]aaonly         (Set AA flag in query (+[no]aaflag))\n"
 "                 +[no]adflag         (Set AD flag in query)\n"
 "                 +[no]cdflag         (Set CD flag in query)\n"
+"                 +[no]zflag          (Set Z flag in query)\n"
 "                 +[no]cl             (Control display of class in records)\n"
 "                 +[no]cmd            (Control display of command line)\n"
 "                 +[no]comments       (Control display of comment lines)\n"
@@ -1380,6 +1381,10 @@ plus_option(char *option, isc_boolean_t is_batchfile,
                        lookup->tcp_mode_set = ISC_TRUE;
                }
                break;
+       case 'z': /* zflag */
+               FULLCHECK("zflag");
+               lookup->zflag = state;
+               break;
        default:
        invalid_option:
        need_value:
index 5a376be8200e77328c2fe2f06292c47721b8e31b..d62b35cb4b23881e17d3ab78b123be7bd0e003ac 100644 (file)
          </listitem>
        </varlistentry>
 
+       <varlistentry>
+         <term><option>+[no]zflag</option></term>
+         <listitem>
+           <para>
+             Set [do not set] the last unassigned DNS header flag in a
+             DNS query.  This flag is off by default.
+           </para>
+         </listitem>
+       </varlistentry>
+
       </variablelist>
 
     </para>
index a171358f9393f04f09ede1d6a86e8f8d5e08f0a8..568e798518fcc8ccc17acd6a767e7089810be345 100644 (file)
@@ -808,6 +808,7 @@ make_empty_lookup(void) {
        looknew->aaonly = ISC_FALSE;
        looknew->adflag = ISC_FALSE;
        looknew->cdflag = ISC_FALSE;
+       looknew->zflag = ISC_FALSE;
        looknew->ns_search_only = ISC_FALSE;
        looknew->origin = NULL;
        looknew->tsigctx = NULL;
@@ -909,6 +910,7 @@ clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers) {
        looknew->aaonly = lookold->aaonly;
        looknew->adflag = lookold->adflag;
        looknew->cdflag = lookold->cdflag;
+       looknew->zflag = lookold->zflag;
        looknew->ns_search_only = lookold->ns_search_only;
        looknew->tcp_mode = lookold->tcp_mode;
        looknew->tcp_mode_set = lookold->tcp_mode_set;
@@ -2414,6 +2416,11 @@ setup_lookup(dig_lookup_t *lookup) {
                lookup->sendmsg->flags |= DNS_MESSAGEFLAG_CD;
        }
 
+       if (lookup->zflag) {
+               debug("Z query");
+               lookup->sendmsg->flags |= 0x0040U;
+       }
+
        dns_message_addname(lookup->sendmsg, lookup->name,
                            DNS_SECTION_QUESTION);
 
index 7c23c74fb9fdeb7ed3eea246a86b5c9545bbce06..fca74f1c8547488e60aece1bdb4f40752a532990 100644 (file)
@@ -114,6 +114,7 @@ struct dig_lookup {
                aaonly,
                adflag,
                cdflag,
+               zflag,
                trace, /*% dig +trace */
                trace_root, /*% initial query for either +trace or +nssearch */
                tcp_mode,
index c88756e2f75f72e8edc5b1991af773d7b1f696f6..4bd37a1b0eab96212b854d2ebd5c9d8489d0f6c8 100644 (file)
           weeks, days, hours, minutes, and seconds.
        </para>
       </listitem>
+      <listitem>
+       <para>
+          <command>dig +zflag</command> can be used to set the last
+         unassigned DNS header flag bit.  This bit in normally zero.
+       </para>
+      </listitem>
       <listitem>
        <para>
           <command>dig +dscp=<replaceable>value</replaceable></command>