diff options
author | Nicolai <NicolaiSoeborg@users.noreply.github.com> | 2016-12-23 20:44:45 +0100 |
---|---|---|
committer | Nicolai <NicolaiSoeborg@users.noreply.github.com> | 2016-12-23 20:44:45 +0100 |
commit | ea756ac4ad511cab67b0347cd318945bea86a8b9 (patch) | |
tree | 8ca374d7af5fc7ac991dcebd22cda43973139b0f | |
parent | 22e78763ea5a1b26b4e44980a3a1410368936846 (diff) | |
download | monitoring-plugins-ea756ac4ad511cab67b0347cd318945bea86a8b9.tar.gz |
check_dns: Tests and info
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | THANKS.in | 1 | ||||
-rw-r--r-- | plugins/check_dns.c | 2 | ||||
-rw-r--r-- | plugins/t/check_dns.t | 22 |
4 files changed, 26 insertions, 3 deletions
@@ -1,6 +1,10 @@ This file documents the major additions and syntax changes between releases. 2.3 [...] + ENHANCEMENTS + check_dns: allow 'expected address' (-a) to be specified in CIDR notation + (IPv4 only). + FIXES Fix regression where check_dhcp was rereading response in a tight loop @@ -355,3 +355,4 @@ Michael Melcher Sven Geggus Thomas Kurschel Yannick Charton +Nicolai Søborg diff --git a/plugins/check_dns.c b/plugins/check_dns.c index 4067c14b..5feafc80 100644 --- a/plugins/check_dns.c +++ b/plugins/check_dns.c @@ -308,7 +308,7 @@ ip_match_cidr(const char *addr, const char *cidr_ro) mask = atoi(mask_c); /* https://www.cryptobells.com/verifying-ips-in-a-subnet-in-php/ */ - return ( ip2long(addr) & ~ ( ( 1 << ( 32 - mask ) ) - 1 ) ) == ( ip2long(subnet) >> (32 - mask) ) << (32 - mask); + return (ip2long(addr) & ~((1 << (32 - mask)) - 1)) == (ip2long(subnet) >> (32 - mask)) << (32 - mask); } unsigned long diff --git a/plugins/t/check_dns.t b/plugins/t/check_dns.t index 035e7682..3dbb7186 100644 --- a/plugins/t/check_dns.t +++ b/plugins/t/check_dns.t @@ -10,7 +10,7 @@ use NPTest; plan skip_all => "check_dns not compiled" unless (-x "check_dns"); -plan tests => 16; +plan tests => 19; my $successOutput = '/DNS OK: [\.0-9]+ seconds? response time/'; @@ -23,7 +23,19 @@ my $hostname_valid = getTestParameter( my $hostname_valid_ip = getTestParameter( "NP_HOSTNAME_VALID_IP", "The IP address of the valid hostname $hostname_valid", - "66.118.156.50", + "130.133.8.40", + ); + +my $hostname_valid_cidr = getTestParameter( + "NP_HOSTNAME_VALID_CIDR", + "An valid CIDR range containing $hostname_valid_ip", + "130.133.8.41/30", + ); + +my $hostname_invalid_cidr = getTestParameter( + "NP_HOSTNAME_INVALID_CIDR", + "An valid CIDR range not containing $hostname_valid_ip", + "130.133.8.39/30", ); my $hostname_valid_reverse = getTestParameter( @@ -87,3 +99,9 @@ $res = NPTest->testCmd("./check_dns -H $hostname_valid_ip -a $hostname_valid_rev cmp_ok( $res->return_code, '==', 0, "Got expected fqdn"); like ( $res->output, $successOutput, "Output OK"); +$res = NPTest->testCmd("./check_dns -H $hostname_valid -a $hostname_valid_cidr -t 5"); +cmp_ok( $res->return_code, '==', 0, "Got expected address"); + +$res = NPTest->testCmd("./check_dns -H $hostname_valid -a $hostname_invalid_cidr -t 5"); +cmp_ok( $res->return_code, '==', 2, "Got wrong address"); +like ( $res->output, "/^DNS CRITICAL.*expected '$hostname_invalid_cidr' but got '$hostname_valid_ip'".'$/', "Output OK"); |