From 5a2814a21bff07b87a7589ef19b63c9eecb8be9f Mon Sep 17 00:00:00 2001 From: Thomas Guyot-Sionnest Date: Tue, 30 Nov 2010 22:48:43 -0500 Subject: 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 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. check_disk_smb now allows spaces in share names (#990948, #1370031, Debian #601699) FIXES - check_snmp now attempts to convert string responses into a double value. If the full string is a value, - check_snmp will consider it a numeric value and thus apply threshold checks and return performance data. - This reverts back to 1.4.14 behaviour with strings Fix check_disk free space calculation if blocksizes differ within a disk group (Bekar - #2973603) check_disk_smb now handles NT_STATUS_ACCESS_DENIED properly (Debian #601696) - - FIXES Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds. 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) char *outbuff; char *ptr = NULL; char *show = NULL; - char *endptr = NULL; char *th_warn=NULL; char *th_crit=NULL; char type[8] = ""; @@ -390,19 +389,6 @@ main (int argc, char **argv) } } - /* Allow numeric conversion if whole string is a number. Make concession for strings with " at beginning or end */ - /* This duplicates the conversion a bit later, but is cleaner to separate out the checking against the conversion */ - ptr = show; - if (*ptr == '"') - ptr++; - if (*ptr != '\0' ) { - strtod( ptr, &endptr ); - if (*endptr == '"') - endptr++; - if (*endptr == '\0') - is_numeric=1; - } - } else if (strstr (response, "Timeticks: ")) { 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") { # We should merge that with $ENV{'NPTEST_CACHE'}, use one dir for all test data $ENV{'NAGIOS_PLUGIN_STATE_DIRECTORY'} ||= "/var/tmp"; -my $tests = 41; +my $tests = 39; if (-x "./check_snmp") { plan tests => $tests; } else { @@ -173,10 +173,6 @@ $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1 is($res->return_code, 0, "OK as string doesn't match but inverted" ); is($res->output, 'SNMP OK - "stringtests" | ', "OK as inverted string no match" ); -$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" ); -is($res->return_code, 0, "Numeric in string test" ); -is($res->output, 'SNMP OK - 3.5 | iso.3.6.1.4.1.8072.3.2.67.12=3.5 ', "Check seen as numeric" ); - $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" ); is($res->return_code, 1, "Numeric in string test" ); 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" ); -- cgit v0.10-9-g596f