diff options
author | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2010-12-01 03:48:43 (GMT) |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2010-12-01 03:48:43 (GMT) |
commit | 5a2814a21bff07b87a7589ef19b63c9eecb8be9f (patch) | |
tree | e112f9645005cb6fb84b96c11640dd613fe14e0c | |
parent | 811684ffe394d050158c2a98d5be211d5ded3c88 (diff) | |
download | monitoring-plugins-5a2814a21bff07b87a7589ef19b63c9eecb8be9f.tar.gz |
Revert "check_snmp now considers strings returned by SNMP that contain just"
This reverts commit 896962a1ad1b7d7c75d42c565b06cc799feb0a7c.
Conflicts:
NEWS
plugins/tests/check_snmp.t
Notes:
Reverting because I rebased a patch that was doing the same thing, plus
fixing more related regressions, and both didn't work together.
I kept the tests intact except for one that wouldn't pass on 1.4.14
either
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | plugins/check_snmp.c | 14 | ||||
-rwxr-xr-x | plugins/tests/check_snmp.t | 6 |
3 files changed, 1 insertions, 24 deletions
@@ -6,13 +6,8 @@ This file documents the major additions and syntax changes between releases. | |||
6 | check_disk_smb now allows spaces in share names (#990948, #1370031, Debian #601699) | 6 | check_disk_smb now allows spaces in share names (#990948, #1370031, Debian #601699) |
7 | 7 | ||
8 | FIXES | 8 | FIXES |
9 | check_snmp now attempts to convert string responses into a double value. If the full string is a value, | ||
10 | check_snmp will consider it a numeric value and thus apply threshold checks and return performance data. | ||
11 | This reverts back to 1.4.14 behaviour with strings | ||
12 | Fix check_disk free space calculation if blocksizes differ within a disk group (Bekar - #2973603) | 9 | Fix check_disk free space calculation if blocksizes differ within a disk group (Bekar - #2973603) |
13 | check_disk_smb now handles NT_STATUS_ACCESS_DENIED properly (Debian #601696) | 10 | check_disk_smb now handles NT_STATUS_ACCESS_DENIED properly (Debian #601696) |
14 | |||
15 | FIXES | ||
16 | Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds. | 11 | Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds. |
17 | 12 | ||
18 | 1.4.15 27th July 2010 | 13 | 1.4.15 27th July 2010 |
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index cb7fb7a..d79da8c 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c | |||
@@ -160,7 +160,6 @@ main (int argc, char **argv) | |||
160 | char *outbuff; | 160 | char *outbuff; |
161 | char *ptr = NULL; | 161 | char *ptr = NULL; |
162 | char *show = NULL; | 162 | char *show = NULL; |
163 | char *endptr = NULL; | ||
164 | char *th_warn=NULL; | 163 | char *th_warn=NULL; |
165 | char *th_crit=NULL; | 164 | char *th_crit=NULL; |
166 | char type[8] = ""; | 165 | char type[8] = ""; |
@@ -390,19 +389,6 @@ main (int argc, char **argv) | |||
390 | } | 389 | } |
391 | } | 390 | } |
392 | 391 | ||
393 | /* Allow numeric conversion if whole string is a number. Make concession for strings with " at beginning or end */ | ||
394 | /* This duplicates the conversion a bit later, but is cleaner to separate out the checking against the conversion */ | ||
395 | ptr = show; | ||
396 | if (*ptr == '"') | ||
397 | ptr++; | ||
398 | if (*ptr != '\0' ) { | ||
399 | strtod( ptr, &endptr ); | ||
400 | if (*endptr == '"') | ||
401 | endptr++; | ||
402 | if (*endptr == '\0') | ||
403 | is_numeric=1; | ||
404 | } | ||
405 | |||
406 | } | 392 | } |
407 | else if (strstr (response, "Timeticks: ")) { | 393 | else if (strstr (response, "Timeticks: ")) { |
408 | show = strstr (response, "Timeticks: "); | 394 | show = strstr (response, "Timeticks: "); |
diff --git a/plugins/tests/check_snmp.t b/plugins/tests/check_snmp.t index 6966838..c960f7b 100755 --- a/plugins/tests/check_snmp.t +++ b/plugins/tests/check_snmp.t | |||
@@ -54,7 +54,7 @@ if ($ARGV[0] && $ARGV[0] eq "-d") { | |||
54 | # We should merge that with $ENV{'NPTEST_CACHE'}, use one dir for all test data | 54 | # We should merge that with $ENV{'NPTEST_CACHE'}, use one dir for all test data |
55 | $ENV{'NAGIOS_PLUGIN_STATE_DIRECTORY'} ||= "/var/tmp"; | 55 | $ENV{'NAGIOS_PLUGIN_STATE_DIRECTORY'} ||= "/var/tmp"; |
56 | 56 | ||
57 | my $tests = 41; | 57 | my $tests = 39; |
58 | if (-x "./check_snmp") { | 58 | if (-x "./check_snmp") { |
59 | plan tests => $tests; | 59 | plan tests => $tests; |
60 | } else { | 60 | } else { |
@@ -173,10 +173,6 @@ $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1 | |||
173 | is($res->return_code, 0, "OK as string doesn't match but inverted" ); | 173 | is($res->return_code, 0, "OK as string doesn't match but inverted" ); |
174 | is($res->output, 'SNMP OK - "stringtests" | ', "OK as inverted string no match" ); | 174 | is($res->output, 'SNMP OK - "stringtests" | ', "OK as inverted string no match" ); |
175 | 175 | ||
176 | $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.12" ); | ||
177 | is($res->return_code, 0, "Numeric in string test" ); | ||
178 | is($res->output, 'SNMP OK - 3.5 | iso.3.6.1.4.1.8072.3.2.67.12=3.5 ', "Check seen as numeric" ); | ||
179 | |||
180 | $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.12 -w 4:5" ); | 176 | $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.12 -w 4:5" ); |
181 | is($res->return_code, 1, "Numeric in string test" ); | 177 | is($res->return_code, 1, "Numeric in string test" ); |
182 | is($res->output, 'SNMP WARNING - *3.5* | iso.3.6.1.4.1.8072.3.2.67.12=3.5 ', "WARNING threshold checks for string masquerading as number" ); | 178 | is($res->output, 'SNMP WARNING - *3.5* | iso.3.6.1.4.1.8072.3.2.67.12=3.5 ', "WARNING threshold checks for string masquerading as number" ); |