]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add an "rpz" system test check for a failed reconfiguration
authorAram Sargsyan <aram@isc.org>
Fri, 17 Feb 2023 12:38:40 +0000 (12:38 +0000)
committerAram Sargsyan <aram@isc.org>
Tue, 21 Feb 2023 09:04:10 +0000 (09:04 +0000)
The faulty "DLZ" configuration triggers a reconfiguration failure
in such a place where view reverting code is covered.

(cherry picked from commit 95f4bac00236fd430131b8db8009de777d8db444)

bin/tests/system/rpz/ns3/named.conf.in
bin/tests/system/rpz/tests.sh

index aafe7f20f450e22af840db5a742a84068481bcf4..6d2303cc74198e3a614b03befcc96e3dc840ddac 100644 (file)
@@ -148,3 +148,13 @@ zone "static-stub-nomatch." {
        type static-stub;
        server-addresses { 10.53.0.10; };
 };
+
+# A faulty dlz configuration to check if named with response policy zones
+# survives a certain class of failed configuration attempts (see GL #3880).
+# "dlz" is used because the dlz processing code is located in an ideal place in
+# the view configuration function for the test to cover the view reverting code.
+# The "BAD" comments below are necessary, because they will be removed using
+# 'sed' by tests.sh in order to activate the faulty configuration.
+#BAD   dlz "bad-dlz" {
+#BAD           database "dlopen bad-dlz.so example.org";
+#BAD   };
index fd6d545e032fb6b8846ca6a10ddaac9a5a39bc7f..1400b5c657e1618e75b102972ac765472dcf5e21 100644 (file)
@@ -848,6 +848,16 @@ EOF
     stop_server --use-rndc --port ${CONTROLPORT} ns3
     restart 3 "rebuild-bl-rpz"
 
+    t=`expr $t + 1`
+    echo_i "checking if rpz survives a certain class of failed reconfiguration attempts (${t})"
+    sed -e "s/^#BAD//" < ns3/named.conf.in > ns3/named.conf.tmp
+    copy_setports ns3/named.conf.tmp ns3/named.conf
+    rm ns3/named.conf.tmp
+    $RNDCCMD $ns3 reconfig > /dev/null 2>&1 && setret "failed"
+    sleep 1
+    copy_setports ns3/named.conf.in ns3/named.conf
+    $RNDCCMD $ns3 reconfig || setret "failed"
+
     # reload a RPZ zone that is now deliberately broken.
     t=`expr $t + 1`
     echo_i "checking rpz failed update will keep previous rpz rules (${t})"