Merge branch '4641-dig-ednsflags-does-not-re-enable-edns-bind-9.18' into 'bind-9.18'

[9.18] Resolve "dig +ednsflags does not re-enable EDNS"

See merge request isc-projects/bind9!8875
This commit is contained in:
Mark Andrews 2024-03-17 03:40:28 +00:00
commit a1b4a62c6a
4 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,6 @@
6363. [bug] dig/mdig +ednsflags=<non-zero-value> did not re-enable
EDNS if it had been disabled. [GL #4641]
6361. [bug] Some invalid ISO 8601 durations were accepted
erroneously. [GL #4624]

View file

@ -1453,6 +1453,10 @@ plus_option(char *option, bool is_batchfile, bool *need_clone,
"ednsflags");
goto exit_or_usage;
}
if (lookup->edns == -1) {
lookup->edns =
DEFAULT_EDNS_VERSION;
}
lookup->ednsflags = num;
break;
case 'n':

View file

@ -1098,6 +1098,14 @@ if [ -x "$DIG" ]; then
grep -F "IN A 10.0.0.1" dig.out.test$n >/dev/null || ret=1
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status + ret))
n=$((n + 1))
echo_i "check that dig +noedns +ednsflags=<nonzero> re-enables EDNS ($n)"
dig_with_opts @10.53.0.3 +qr +noedns +ednsflags=0x70 a.example >dig.out.test$n 2>&1 || ret=1
grep "; EDNS: version: 0, flags:; MBZ: 0x0070, udp: 1232" dig.out.test$n >/dev/null || ret=1
grep "; EDNS: version: 0, flags:; udp: 1232" dig.out.test$n >/dev/null || ret=1
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status + ret))
else
echo_i "$DIG is needed, so skipping these dig tests"
fi

View file

@ -1366,6 +1366,9 @@ plus_option(char *option, struct query *query, bool global) {
"ednsflags");
CHECK("parse_xint(ednsflags)",
result);
if (query->edns == -1) {
query->edns = 1;
}
query->ednsflags = num;
break;
case 'o':