From b19bb841166cd9502c8e9f7ebad32958e94d3e78 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 8 May 2023 16:26:29 +1000 Subject: [PATCH] Check fallback on FORMERR to EDNS options (cherry picked from commit 9d95cd427d7f0a4b77511ac89a9d51195ba9035c) --- bin/tests/system/resolver/ns4/root.db | 2 ++ bin/tests/system/resolver/tests.sh | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/bin/tests/system/resolver/ns4/root.db b/bin/tests/system/resolver/ns4/root.db index df6c29b926..4e4418b613 100644 --- a/bin/tests/system/resolver/ns4/root.db +++ b/bin/tests/system/resolver/ns4/root.db @@ -35,3 +35,5 @@ ns.targetns. A 10.53.0.6 partial-formerr. NS ns.partial-formerr. ns.partial-formerr. A 10.53.0.2 ns.partial-formerr. A 10.53.0.3 +options-formerr. NS ns.options-formerr. +ns.options-formerr. A 10.53.0.10 diff --git a/bin/tests/system/resolver/tests.sh b/bin/tests/system/resolver/tests.sh index c96726ae8a..5f8bd01bda 100755 --- a/bin/tests/system/resolver/tests.sh +++ b/bin/tests/system/resolver/tests.sh @@ -1002,6 +1002,18 @@ grep "ANSWER: [12]," dig.out.2.${n} > /dev/null || ret=1 lines=$(awk '$1 == "mixedttl.tld." && $2 > 30 { print }' dig.out.2.${n} | wc -l) test ${lines:-1} -ne 0 && ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi + +n=$((n+1)) +echo_i "check resolver behavior when FORMERR for EDNS options happens (${n})" +ret=0 +msg="resolving options-formerr/A .* server sent FORMERR with echoed DNS COOKIE" +if [ $ret != 0 ]; then echo_i "failed"; fi +nextpart ns5/named.run >/dev/null +dig_with_opts +tcp @10.53.0.5 options-formerr A > dig.out.${n} || ret=1 +grep "status: NOERROR" dig.out.${n} > /dev/null || ret=1 +nextpart ns5/named.run | grep "$msg" > /dev/null || ret=1 +if [ $ret != 0 ]; then echo_i "failed"; fi + status=$((status + ret)) echo_i "exit status: $status"