diff --git a/CHANGES b/CHANGES
index bc2d60760f..381b1389ff 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+4690. [bug] Command line options -4/-6 were handled inconsistently
+ between tools. [RT #45632]
+
4689. [cleanup] Turn on minimal responses for CDNSKEY and CDS in
addition to DNSKEY and DS. Thanks to Tony Finch.
[RT #45690]
diff --git a/bin/delv/delv.c b/bin/delv/delv.c
index 0d660c13f4..0a312bf4fa 100644
--- a/bin/delv/delv.c
+++ b/bin/delv/delv.c
@@ -1367,6 +1367,7 @@ dash_option(char *option, char *next, isc_boolean_t *open_type_class) {
*/
static void
preparse_args(int argc, char **argv) {
+ isc_boolean_t ipv4only = ISC_FALSE, ipv6only = ISC_FALSE;
char *option;
for (argc--, argv++; argc > 0; argc--, argv++) {
@@ -1374,10 +1375,23 @@ preparse_args(int argc, char **argv) {
continue;
option = &argv[0][1];
while (strpbrk(option, single_dash_opts) == &option[0]) {
- if (option[0] == 'm') {
+ switch (option[0]) {
+ case 'm':
isc_mem_debugging = ISC_MEM_DEBUGTRACE |
ISC_MEM_DEBUGRECORD;
- return;
+ break;
+ case '4':
+ if (ipv6only) {
+ fatal("only one of -4 and -6 allowed");
+ }
+ ipv4only = ISC_TRUE;
+ break;
+ case '6':
+ if (ipv4only) {
+ fatal("only one of -4 and -6 allowed");
+ }
+ ipv6only = ISC_TRUE;
+ break;
}
option = &option[1];
}
@@ -1565,8 +1579,8 @@ main(int argc, char *argv[]) {
struct sigaction sa;
#endif
- preparse_args(argc, argv);
progname = argv[0];
+ preparse_args(argc, argv);
argc--;
argv++;
diff --git a/bin/delv/delv.docbook b/bin/delv/delv.docbook
index ce040ed922..4c7d33c99c 100644
--- a/bin/delv/delv.docbook
+++ b/bin/delv/delv.docbook
@@ -51,8 +51,10 @@
delv
@server
-
-
+
+
+
+
diff --git a/bin/dig/dig.docbook b/bin/dig/dig.docbook
index 2baa13eaa0..dad3138c15 100644
--- a/bin/dig/dig.docbook
+++ b/bin/dig/dig.docbook
@@ -79,8 +79,10 @@
-
-
+
+
+
+
name
type
class
diff --git a/bin/dig/host.docbook b/bin/dig/host.docbook
index 17eccf8a9d..06480a317a 100644
--- a/bin/dig/host.docbook
+++ b/bin/dig/host.docbook
@@ -68,8 +68,10 @@
-
-
+
+
+
+
name
diff --git a/bin/named/lwresd.docbook b/bin/named/lwresd.docbook
index bf370ba71f..b1a8d5dd68 100644
--- a/bin/named/lwresd.docbook
+++ b/bin/named/lwresd.docbook
@@ -72,8 +72,10 @@
-
-
+
+
+
+
diff --git a/bin/named/named.docbook b/bin/named/named.docbook
index 2faca02a7c..4c31224169 100644
--- a/bin/named/named.docbook
+++ b/bin/named/named.docbook
@@ -62,8 +62,10 @@
named
-
-
+
+
+
+
diff --git a/bin/tests/system/digdelv/tests.sh b/bin/tests/system/digdelv/tests.sh
index d87b008e14..cfec83be96 100644
--- a/bin/tests/system/digdelv/tests.sh
+++ b/bin/tests/system/digdelv/tests.sh
@@ -337,6 +337,14 @@ if [ -x ${DELV} ] ; then
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
+ n=`expr $n + 1`
+ echo "I:checking delv -4 -6 ($n)"
+ ret=0
+ $DELV $DELVOPTS @10.53.0.3 -4 -6 A a.example > delv.out.test$n 2>&1 && ret=1
+ grep "only one of -4 and -6 allowed" < delv.out.test$n > /dev/null || ret=1
+ if [ $ret != 0 ]; then echo "I:failed"; fi
+ status=`expr $status + $ret`
+
n=`expr $n + 1`
echo "I:checking delv with IPv6 on IPv4 does not work ($n)"
if $TESTSOCK6 fd92:7065:b8e:ffff::3