From: Tony Finch Date: Tue, 15 Oct 2019 14:36:55 +0000 (+0100) Subject: Fix missing newlines in output of `rndc nta -dump` X-Git-Tag: v9.19.18~4^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=61b245e3182a0d940295b0f45cf3dc136fa9ef8b;p=thirdparty%2Fbind9.git Fix missing newlines in output of `rndc nta -dump` There were no newlines between each view in the list of negative trust anchors. --- diff --git a/bin/named/server.c b/bin/named/server.c index 3223e357891..461f900a95f 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -15253,6 +15253,8 @@ named_server_nta(named_server_t *server, isc_lex_t *lex, bool readonly, * If -dump was specified, list NTA's and return */ if (dump) { + size_t last = 0; + for (view = ISC_LIST_HEAD(server->viewlist); view != NULL; view = ISC_LIST_NEXT(view, link)) { @@ -15264,6 +15266,12 @@ named_server_nta(named_server_t *server, isc_lex_t *lex, bool readonly, continue; } + if (last != isc_buffer_usedlength(*text)) { + CHECK(putstr(text, "\n")); + } + + last = isc_buffer_usedlength(*text); + CHECK(dns_ntatable_totext(ntatable, view->name, text)); } CHECK(putnull(text)); diff --git a/bin/tests/system/rndc/tests.sh b/bin/tests/system/rndc/tests.sh index 838055884ca..8187f69ece3 100644 --- a/bin/tests/system/rndc/tests.sh +++ b/bin/tests/system/rndc/tests.sh @@ -817,5 +817,14 @@ grep 'include 2' dig.out.2.test$n >/dev/null || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi status=$((status + ret)) +n=$((n + 1)) +echo_i "check rndc nta -dump reports NTAs in multiple views ($n)" +ret=0 +$RNDCCMD 10.53.0.3 nta -dump >rndc.out.test$n 2>&1 || ret=1 +lines=$(cat rndc.out.test$n | wc -l) +[ ${lines:-0} -eq 2 ] || ret=1 +if [ $ret != 0 ]; then echo_i "failed"; fi +status=$((status + ret)) + echo_i "exit status: $status" [ $status -eq 0 ] || exit 1