summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Lapie <stephane.lapie@asahinet.com>2013-11-15 02:04:55 (GMT)
committerThomas Guyot-Sionnest <dermoth@aei.ca>2014-01-31 05:49:18 (GMT)
commit35811848da1095525e6937159f6611fc8a87261b (patch)
treee7eaa71beb82c1bb9a181f35a2ec013c4f928179
parentc4e3cd6efd5aef8665db103a66996e619526ab3b (diff)
downloadmonitoring-plugins-35811848da1095525e6937159f6611fc8a87261b.tar.gz
Handle negative values properly with check_snmp
check_snmp becomes capable of evaluating negative values properly, but it might be returning CRITICALs where it used to return OK and was ignored, if a negative value turns out to actually be a valid value. If negative values are valid, this can be worked around, by adding "~:" to the warning/critical threshold : 100 -> ~:100
-rw-r--r--lib/utils_base.h2
-rw-r--r--plugins/check_snmp.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/utils_base.h b/lib/utils_base.h
index 04f6370..d69b0da 100644
--- a/lib/utils_base.h
+++ b/lib/utils_base.h
@@ -62,7 +62,7 @@ int check_range(double, range *);
62int get_status(double, thresholds *); 62int get_status(double, thresholds *);
63 63
64/* All possible characters in a threshold range */ 64/* All possible characters in a threshold range */
65#define NP_THRESHOLDS_CHARS "0123456789.:@~" 65#define NP_THRESHOLDS_CHARS "-0123456789.:@~"
66 66
67char *np_escaped_string (const char *); 67char *np_escaped_string (const char *);
68 68
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index ca17970..d516fbc 100644
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
@@ -459,7 +459,7 @@ main (int argc, char **argv)
459 /* Process this block for numeric comparisons */ 459 /* Process this block for numeric comparisons */
460 /* Make some special values,like Timeticks numeric only if a threshold is defined */ 460 /* Make some special values,like Timeticks numeric only if a threshold is defined */
461 if (thlds[i]->warning || thlds[i]->critical || calculate_rate) { 461 if (thlds[i]->warning || thlds[i]->critical || calculate_rate) {
462 ptr = strpbrk (show, "0123456789"); 462 ptr = strpbrk (show, "-0123456789");
463 if (ptr == NULL) 463 if (ptr == NULL)
464 die (STATE_UNKNOWN,_("No valid data returned (%s)\n"), show); 464 die (STATE_UNKNOWN,_("No valid data returned (%s)\n"), show);
465 while (i >= response_size) { 465 while (i >= response_size) {