]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
minor bugfix in mdig: when using +multi, +norrcomments was ignored
authorEvan Hunt <each@isc.org>
Tue, 30 Jul 2019 19:28:20 +0000 (12:28 -0700)
committerEvan Hunt <each@isc.org>
Thu, 8 Aug 2019 02:47:56 +0000 (19:47 -0700)
bin/tools/mdig.c

index 3c065af7b81456fa4239ab3d74fdf32b609bd479..0b796d1717796c69d3fe1b06ac87479ec05fc6b7 100644 (file)
@@ -94,7 +94,7 @@ static bool besteffort = true;
 static bool display_short_form = false;
 static bool display_headers = true;
 static bool display_comments = true;
-static bool display_rrcomments = true;
+static int display_rrcomments = 0;
 static bool display_ttlunits = true;
 static bool display_ttl = true;
 static bool display_class = true;
@@ -247,7 +247,7 @@ recvresponse(isc_task_t *task, isc_event_t *event) {
                styleflags |= DNS_STYLEFLAG_COMMENT;
        if (display_unknown_format)
                styleflags |= DNS_STYLEFLAG_UNKNOWNFORMAT;
-       if (display_rrcomments)
+       if (display_rrcomments > 0)
                styleflags |= DNS_STYLEFLAG_RRCOMMENT;
        if (display_ttlunits)
                styleflags |= DNS_STYLEFLAG_TTL_UNITS;
@@ -265,7 +265,10 @@ recvresponse(isc_task_t *task, isc_event_t *event) {
                styleflags |= DNS_STYLEFLAG_TTL;
                styleflags |= DNS_STYLEFLAG_MULTILINE;
                styleflags |= DNS_STYLEFLAG_COMMENT;
-               styleflags |= DNS_STYLEFLAG_RRCOMMENT;
+               /* Turn on rrcomments unless explicitly disabled */
+               if (display_rrcomments >= 0) {
+                       styleflags |= DNS_STYLEFLAG_RRCOMMENT;
+               }
        }
        if (display_multiline || (!display_ttl && !display_class))
                result = dns_master_stylecreate(&style, styleflags,
@@ -1100,7 +1103,7 @@ plus_option(char *option, struct query *query, bool global)
                        display_authority = state;
                        display_additional = state;
                        display_comments = state;
-                       display_rrcomments = state;
+                       display_rrcomments = state ? 1 : -1;
                        break;
                case 'n': /* answer */
                        FULLCHECK("answer");
@@ -1349,7 +1352,7 @@ plus_option(char *option, struct query *query, bool global)
                case 'r':
                        FULLCHECK("rrcomments");
                        GLOBAL();
-                       display_rrcomments = state;
+                       display_rrcomments = state ? 1 : -1;
                        break;
                default:
                        goto invalid_option;
@@ -1367,7 +1370,7 @@ plus_option(char *option, struct query *query, bool global)
                                display_authority = false;
                                display_additional = false;
                                display_comments = false;
-                               display_rrcomments = false;
+                               display_rrcomments = -1;
                        }
                        break;
                case 'p': /* split */