From 896962a1ad1b7d7c75d42c565b06cc799feb0a7c Mon Sep 17 00:00:00 2001 From: nagios Date: Mon, 15 Nov 2010 15:43:41 +0000 Subject: check_snmp now considers strings returned by SNMP that contain just numbers (according to strtod) to be a numeric value for threshold and performance data --- plugins/check_snmp.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'plugins/check_snmp.c') diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index f32a26eb..9d919422 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -160,6 +160,7 @@ 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] = ""; @@ -395,6 +396,19 @@ 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: "); -- cgit v1.2.3-74-g34f1