summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--plugins/check_snmp.c14
-rwxr-xr-xplugins/tests/check_snmp.t6
3 files changed, 1 insertions, 24 deletions
diff --git a/NEWS b/NEWS
index fb130ce..c352995 100644
--- a/NEWS
+++ b/NEWS
@@ -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
181.4.15 27th July 2010 131.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
57my $tests = 41; 57my $tests = 39;
58if (-x "./check_snmp") { 58if (-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
173is($res->return_code, 0, "OK as string doesn't match but inverted" ); 173is($res->return_code, 0, "OK as string doesn't match but inverted" );
174is($res->output, 'SNMP OK - "stringtests" | ', "OK as inverted string no match" ); 174is($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" );
177is($res->return_code, 0, "Numeric in string test" );
178is($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" );
181is($res->return_code, 1, "Numeric in string test" ); 177is($res->return_code, 1, "Numeric in string test" );
182is($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" ); 178is($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" );