]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Check synthesis of CNAME record from wildcard CNAME
authorMark Andrews <marka@isc.org>
Tue, 2 Nov 2021 04:26:45 +0000 (15:26 +1100)
committerPetr Špaček <pspacek@isc.org>
Thu, 2 Dec 2021 13:18:40 +0000 (14:18 +0100)
bin/tests/system/synthfromdnssec/tests.sh

index 908226351f85a7b2bae07d1d0eca041de10de53c..c828160eba5c4708001d2f9b1ef35857e885af92 100644 (file)
@@ -64,6 +64,19 @@ check_nosynth_a() (
     return 0
 )
 
+check_synth_cname() (
+    name=$(echo "$1" | sed 's/\./\\./g')
+    grep "^${name}.*[0-9]*.IN.CNAME" ${2} > /dev/null || return 1
+    grep "^${name}.*3600.IN.CNAME" ${2} > /dev/null && return 1
+    return 0
+)
+
+check_nosynth_cname() (
+    name=$(echo "$1" | sed 's/\./\\./g')
+    grep "^${name}.*3600.IN.CNAME" ${2} > /dev/null || return 1
+    return 0
+)
+
 for ns in 2 4 5
 do
     case $ns in
@@ -109,7 +122,7 @@ do
     dig_with_opts a.wild-cname.example. @10.53.0.${ns} a > dig.out.ns${ns}.test$n || ret=1
     check_ad_flag yes dig.out.ns${ns}.test$n || ret=1
     check_status NOERROR dig.out.ns${ns}.test$n || ret=1
-    grep "a.wild-cname.example.*3600.IN.CNAME" dig.out.ns${ns}.test$n > /dev/null || ret=1
+    check_nosynth_cname a.wild-cname.example. dig.out.ns${ns}.test$n || ret=1
     n=$((n+1))
     if [ $ret != 0 ]; then echo_i "failed"; fi
     status=$((status+ret))
@@ -192,10 +205,9 @@ do
     check_status NOERROR dig.out.ns${ns}.test$n || ret=1
     if [ ${synth} = yes ]
     then
-       grep "b.wild-cname.example.*IN.CNAME" dig.out.ns${ns}.test$n > /dev/null || ret=1
-       grep "b.wild-cname.example.*3600.IN.CNAME" dig.out.ns${ns}.test$n > /dev/null && ret=1
+       check_synth_cname b.wild-cname.example. dig.out.ns${ns}.test$n || ret=1
     else
-       grep "b.wild-cname.example.*3600.IN.CNAME" dig.out.ns${ns}.test$n > /dev/null || ret=1
+       check_nosynth_cname b.wild-cname.example. dig.out.ns${ns}.test$n || ret=1
     fi
     grep "ns1.example.*.IN.A" dig.out.ns${ns}.test$n > /dev/null || ret=1
     n=$((n+1))