]> 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)
committerArаm Sаrgsyаn <aram@isc.org>
Mon, 27 Feb 2023 08:42:34 +0000 (08:42 +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 30f08c804c8e319f4a39b7309772610956ca7591..dc069d8164df859813396ec2d9a174ed31ac88b4 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 6505082b2c44ff351d520996d45468bd62e56480..760ef13fed27ffb52baa185498ad3e95d5a4a018 100644 (file)
@@ -846,6 +846,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})"