From 661ea29ecb93cd852f93e822d6aa96c382e17bbb Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Thu, 25 Jul 2019 16:53:01 -0400 Subject: [PATCH] add a system test, confirming that named fails to reload without crashing (cherry picked from commit 8f1cdaeed94fb9bdb4a7a4c8aeddae4ef4a0f805) --- bin/tests/system/geoip/clean.sh | 2 +- bin/tests/system/geoip/ns2/named15.conf.in | 2 +- bin/tests/system/geoip/ns2/named16.conf.in | 49 ++++++++++++++++++++++ bin/tests/system/geoip/tests.sh | 11 +++++ util/copyrights | 1 + 5 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 bin/tests/system/geoip/ns2/named16.conf.in diff --git a/bin/tests/system/geoip/clean.sh b/bin/tests/system/geoip/clean.sh index d6fe94b852c..1257fdae15e 100644 --- a/bin/tests/system/geoip/clean.sh +++ b/bin/tests/system/geoip/clean.sh @@ -14,6 +14,6 @@ rm -f ns2/example*.db rm -f dig.out.* rndc.out.* rm -f data2/*dat [ -d data2 ] && rmdir data2 -rm -f ns?/named.run +rm -f ns?/named.run ns?/named.run.* rm -f ns?/named.memstats rm -f ns*/named.lock diff --git a/bin/tests/system/geoip/ns2/named15.conf.in b/bin/tests/system/geoip/ns2/named15.conf.in index 01ee377cba0..6e983caa2b0 100644 --- a/bin/tests/system/geoip/ns2/named15.conf.in +++ b/bin/tests/system/geoip/ns2/named15.conf.in @@ -36,7 +36,7 @@ view two { match-clients { geoip country US; }; zone "example" { type master; - file "../ns2/example2.db"; + file "example2.db"; }; }; diff --git a/bin/tests/system/geoip/ns2/named16.conf.in b/bin/tests/system/geoip/ns2/named16.conf.in new file mode 100644 index 00000000000..68c0e2c5aac --- /dev/null +++ b/bin/tests/system/geoip/ns2/named16.conf.in @@ -0,0 +1,49 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +// NS2 + +options { + query-source address 10.53.0.2; + notify-source 10.53.0.2; + transfer-source 10.53.0.2; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.2; }; + listen-on-v6 { fd92:7065:b8e:ffff::2; }; + recursion no; + dnssec-validation no; + geoip-directory "../data2"; +}; + +key rndc_key { + secret "1234abcd8765"; + algorithm hmac-sha256; +}; + +controls { + inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; +}; + +view one { + match-clients { geoip continent EU; }; + zone "example" { + type master; + file "example1.db"; + }; +}; + +view none { + zone "example" { + type master; + file "examplebogus.db"; + }; +}; diff --git a/bin/tests/system/geoip/tests.sh b/bin/tests/system/geoip/tests.sh index cb1473af79a..d9e03792f75 100644 --- a/bin/tests/system/geoip/tests.sh +++ b/bin/tests/system/geoip/tests.sh @@ -452,6 +452,7 @@ status=`expr $status + $ret` n=`expr $n + 1` echo_i "reloading server with different geoip-directory ($n)" +ret=0 copy_setports ns2/named15.conf.in ns2/named.conf $RNDCCMD 10.53.0.2 reload 2>&1 | sed 's/^/ns2 /' | cat_i sleep 3 @@ -473,6 +474,16 @@ fi [ $ret -eq 0 ] || echo_i "failed" status=`expr $status + $ret` +n=`expr $n + 1` +echo_i "reloading server with different geoip-directory, missing continent support ($n)" +nextpart ns2/named.run > /dev/null +copy_setports ns2/named16.conf.in ns2/named.conf +$RNDCCMD 10.53.0.2 reload > /dev/null 2>&1 +sleep 3 +nextpart ns2/named.run | grep 'no GeoIP database installed' > /dev/null 2>&1 || ret=1 +[ $ret -eq 0 ] || echo_i "failed" +status=`expr $status + $ret` + n=`expr $n + 1` echo_i "checking other GeoIP options are parsed correctly ($n)" ret=0 diff --git a/util/copyrights b/util/copyrights index d6144f1d733..d1451a873e4 100644 --- a/util/copyrights +++ b/util/copyrights @@ -1460,6 +1460,7 @@ ./bin/tests/system/geoip/ns2/named13.conf.in CONF-C 2018,2019 ./bin/tests/system/geoip/ns2/named14.conf.in CONF-C 2018,2019 ./bin/tests/system/geoip/ns2/named15.conf.in CONF-C 2018,2019 +./bin/tests/system/geoip/ns2/named16.conf.in CONF-C 2019 ./bin/tests/system/geoip/ns2/named2.conf.in CONF-C 2018,2019 ./bin/tests/system/geoip/ns2/named3.conf.in CONF-C 2018,2019 ./bin/tests/system/geoip/ns2/named4.conf.in CONF-C 2018,2019 -- 2.47.3