[nagiosplug] check_tcp: only test ipv6 if ping6 works
Nagios Plugin Development
nagios-plugins at users.sourceforge.net
Thu Sep 12 23:40:12 CEST 2013
Module: nagiosplug
Branch: master
Commit: c0926c2b1eddf25600c2dc1c7aff922eec98957d
Author: Sven Nierlein <Sven.Nierlein at consol.de>
Committer: Sven Nierlein <sven at consol.de>
Date: Thu Sep 12 15:18:12 2013 +0200
URL: http://nagiosplug.git.sf.net/git/gitweb.cgi?p=nagiosplug/nagiosplug;a=commit;h=c0926c2
check_tcp: only test ipv6 if ping6 works
---
plugins/t/check_tcp.t | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/plugins/t/check_tcp.t b/plugins/t/check_tcp.t
index c100cad..0e6a964 100644
--- a/plugins/t/check_tcp.t
+++ b/plugins/t/check_tcp.t
@@ -9,7 +9,18 @@ use Test;
use NPTest;
use vars qw($tests);
-BEGIN {$tests = 14; plan tests => $tests}
+my $has_ipv6;
+BEGIN {
+ $tests = 11;
+ # do we have ipv6
+ `ping6 -c 1 2a02:2e0:3fe:100::7 2>&1`;
+ if($? == 0) {
+ $has_ipv6 = 1;
+ $tests += 3;
+ }
+ plan tests => $tests;
+}
+
my $host_tcp_http = getTestParameter( "host_tcp_http", "NP_HOST_TCP_HTTP", "localhost",
"A host providing the HTTP Service (a web server)" );
@@ -27,7 +38,6 @@ my $failedExpect = '/^TCP WARNING\s-\sUnexpected response from host/socket on po
my $t;
$t += checkCmd( "./check_tcp $host_tcp_http -p 80 -wt 300 -ct 600", 0, $successOutput );
-$t += checkCmd( "./check_tcp $host_tcp_http -p 80 -wt 300 -ct 600 -6 ", 0, $successOutput );
$t += checkCmd( "./check_tcp $host_tcp_http -p 81 -wt 0 -ct 0 -to 1", 2 ); # use invalid port for this test
$t += checkCmd( "./check_tcp $host_nonresponsive -p 80 -wt 0 -ct 0 -to 1", 2 );
$t += checkCmd( "./check_tcp $hostname_invalid -p 80 -wt 0 -ct 0 -to 1", 2 );
@@ -35,11 +45,16 @@ $t += checkCmd( "./check_tcp -S -D 1 -H www.verisign.com -p 443", 0
$t += checkCmd( "./check_tcp -S -D 9000,1 -H www.verisign.com -p 443", 1 );
$t += checkCmd( "./check_tcp -S -D 9000 -H www.verisign.com -p 443", 1 );
$t += checkCmd( "./check_tcp -S -D 9000,8999 -H www.verisign.com -p 443", 2 );
-$t += checkCmd( "./check_tcp -6 -p 80 www.heise.de", 0 );
# Need the \r\n to make it more standards compliant with web servers. Need the various quotes
# so that perl doesn't interpret the \r\n and is passed onto command line correctly
$t += checkCmd( "./check_tcp $host_tcp_http -p 80 -E -s ".'"GET / HTTP/1.1\r\n\r\n"'." -e 'ThisShouldntMatch' -j", 1, $failedExpect );
+# IPv6 checks
+if($has_ipv6) {
+ $t += checkCmd( "./check_tcp $host_tcp_http -p 80 -wt 300 -ct 600 -6 ", 0, $successOutput );
+ $t += checkCmd( "./check_tcp -6 -p 80 www.heise.de", 0 );
+}
+
exit(0) if defined($Test::Harness::VERSION);
exit($tests - $t);
More information about the Commits
mailing list