diff options
| author | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2007-01-30 05:01:00 +0000 |
|---|---|---|
| committer | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2007-01-30 05:01:00 +0000 |
| commit | e8a3864bca84196a20c6d5566671852b6e80370e (patch) | |
| tree | a84132a9c264d9b83b1e7dbaa30a209600c613a4 | |
| parent | 986abfd43d6b2b412c6695c435508eb19db520bb (diff) | |
| download | monitoring-plugins-e8a3864bca84196a20c6d5566671852b6e80370e.tar.gz | |
Fix reporting bug using expect, affecting (not fixing) Debian bug #392610: check_jabber always return warning
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1596 f882894a-f735-0410-b71e-b25c423dba1c
| -rw-r--r-- | plugins/check_tcp.c | 26 | ||||
| -rw-r--r-- | plugins/t/check_tcp.t | 5 |
2 files changed, 22 insertions, 9 deletions
diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c index 7e1bd38b..8187bcde 100644 --- a/plugins/check_tcp.c +++ b/plugins/check_tcp.c | |||
| @@ -347,7 +347,10 @@ main (int argc, char **argv) | |||
| 347 | if(match == -2 && len && !(flags & FLAG_HIDE_OUTPUT)) | 347 | if(match == -2 && len && !(flags & FLAG_HIDE_OUTPUT)) |
| 348 | printf("Unexpected response from host/socket: %s", status); | 348 | printf("Unexpected response from host/socket: %s", status); |
| 349 | else { | 349 | else { |
| 350 | printf("%.3f second response time on ", elapsed_time); | 350 | if(match == -2) |
| 351 | printf("Unexpected response from host/socket on "); | ||
| 352 | else | ||
| 353 | printf("%.3f second response time on ", elapsed_time); | ||
| 351 | if(server_address[0] != '/') | 354 | if(server_address[0] != '/') |
| 352 | printf("port %d", server_port); | 355 | printf("port %d", server_port); |
| 353 | else | 356 | else |
| @@ -358,17 +361,24 @@ main (int argc, char **argv) | |||
| 358 | printf (" [%s]", status); | 361 | printf (" [%s]", status); |
| 359 | 362 | ||
| 360 | /* perf-data doesn't apply when server doesn't talk properly, | 363 | /* perf-data doesn't apply when server doesn't talk properly, |
| 361 | * so print all zeroes on warn and crit */ | 364 | * so print all zeroes on warn and criti. Use fperfdata since |
| 365 | * localisation settings can make different outputs */ | ||
| 362 | if(match == -2) | 366 | if(match == -2) |
| 363 | printf ("|time=%fs;0.0;0.0;0.0;0.0", elapsed_time); | 367 | printf ("|%s", |
| 368 | fperfdata ("time", elapsed_time, "s", | ||
| 369 | TRUE, 0, | ||
| 370 | TRUE, 0, | ||
| 371 | TRUE, 0, | ||
| 372 | TRUE, socket_timeout) | ||
| 373 | ); | ||
| 364 | else | 374 | else |
| 365 | printf("|%s", | 375 | printf("|%s", |
| 366 | fperfdata ("time", elapsed_time, "s", | 376 | fperfdata ("time", elapsed_time, "s", |
| 367 | TRUE, warning_time, | 377 | TRUE, warning_time, |
| 368 | TRUE, critical_time, | 378 | TRUE, critical_time, |
| 369 | TRUE, 0, | 379 | TRUE, 0, |
| 370 | TRUE, socket_timeout) | 380 | TRUE, socket_timeout) |
| 371 | ); | 381 | ); |
| 372 | 382 | ||
| 373 | putchar('\n'); | 383 | putchar('\n'); |
| 374 | return result; | 384 | return result; |
diff --git a/plugins/t/check_tcp.t b/plugins/t/check_tcp.t index ffe559df..67e527a0 100644 --- a/plugins/t/check_tcp.t +++ b/plugins/t/check_tcp.t | |||
| @@ -10,7 +10,7 @@ use Test; | |||
| 10 | use NPTest; | 10 | use NPTest; |
| 11 | 11 | ||
| 12 | use vars qw($tests); | 12 | use vars qw($tests); |
| 13 | BEGIN {$tests = 5; plan tests => $tests} | 13 | BEGIN {$tests = 7; plan tests => $tests} |
| 14 | 14 | ||
| 15 | my $host_tcp_http = getTestParameter( "host_tcp_http", "NP_HOST_TCP_HTTP", "localhost", | 15 | my $host_tcp_http = getTestParameter( "host_tcp_http", "NP_HOST_TCP_HTTP", "localhost", |
| 16 | "A host providing the HTTP Service (a web server)" ); | 16 | "A host providing the HTTP Service (a web server)" ); |
| @@ -23,12 +23,15 @@ my $hostname_invalid = getTestParameter( "hostname_invalid", "NP_HOSTNAME_IN | |||
| 23 | 23 | ||
| 24 | my $successOutput = '/^TCP OK\s-\s+[0-9]?\.?[0-9]+ second response time on port [0-9]+/'; | 24 | my $successOutput = '/^TCP OK\s-\s+[0-9]?\.?[0-9]+ second response time on port [0-9]+/'; |
| 25 | 25 | ||
| 26 | my $failedExpect = '/^TCP WARNING\s-\sUnexpected response from host/socket on port [0-9]+/'; | ||
| 27 | |||
| 26 | my $t; | 28 | my $t; |
| 27 | 29 | ||
| 28 | $t += checkCmd( "./check_tcp $host_tcp_http -p 80 -wt 300 -ct 600", 0, $successOutput ); | 30 | $t += checkCmd( "./check_tcp $host_tcp_http -p 80 -wt 300 -ct 600", 0, $successOutput ); |
| 29 | $t += checkCmd( "./check_tcp $host_tcp_http -p 81 -wt 0 -ct 0 -to 1", 2 ); # use invalid port for this test | 31 | $t += checkCmd( "./check_tcp $host_tcp_http -p 81 -wt 0 -ct 0 -to 1", 2 ); # use invalid port for this test |
| 30 | $t += checkCmd( "./check_tcp $host_nonresponsive -p 80 -wt 0 -ct 0 -to 1", 2 ); | 32 | $t += checkCmd( "./check_tcp $host_nonresponsive -p 80 -wt 0 -ct 0 -to 1", 2 ); |
| 31 | $t += checkCmd( "./check_tcp $hostname_invalid -p 80 -wt 0 -ct 0 -to 1", 2 ); | 33 | $t += checkCmd( "./check_tcp $hostname_invalid -p 80 -wt 0 -ct 0 -to 1", 2 ); |
| 34 | $t += checkCmd( "./check_tcp $host_tcp_http -p 80 -s 'GET /\n' -e 'ThisShouldntMatch' -j", 1, $failedExpect ); | ||
| 32 | 35 | ||
| 33 | exit(0) if defined($Test::Harness::VERSION); | 36 | exit(0) if defined($Test::Harness::VERSION); |
| 34 | exit($tests - $t); | 37 | exit($tests - $t); |
