diff options
| author | nagios <nagios@opsviewdev32.(none)> | 2010-11-15 15:43:41 +0000 |
|---|---|---|
| committer | nagios <nagios@opsviewdev32.(none)> | 2010-11-15 15:43:41 +0000 |
| commit | 896962a1ad1b7d7c75d42c565b06cc799feb0a7c (patch) | |
| tree | 12723ac6ebc1f99109a03a938602a4719a0622e5 /plugins/check_snmp.c | |
| parent | e7ac2e68c9524ffed4046559fef0b545785e64a0 (diff) | |
| download | monitoring-plugins-896962a1ad1b7d7c75d42c565b06cc799feb0a7c.tar.gz | |
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
Diffstat (limited to 'plugins/check_snmp.c')
| -rw-r--r-- | plugins/check_snmp.c | 14 |
1 files changed, 14 insertions, 0 deletions
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) | |||
| 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; | ||
| 163 | char *th_warn=NULL; | 164 | char *th_warn=NULL; |
| 164 | char *th_crit=NULL; | 165 | char *th_crit=NULL; |
| 165 | char type[8] = ""; | 166 | char type[8] = ""; |
| @@ -395,6 +396,19 @@ main (int argc, char **argv) | |||
| 395 | } | 396 | } |
| 396 | } | 397 | } |
| 397 | 398 | ||
| 399 | /* Allow numeric conversion if whole string is a number. Make concession for strings with " at beginning or end */ | ||
| 400 | /* This duplicates the conversion a bit later, but is cleaner to separate out the checking against the conversion */ | ||
| 401 | ptr = show; | ||
| 402 | if (*ptr == '"') | ||
| 403 | ptr++; | ||
| 404 | if (*ptr != '\0' ) { | ||
| 405 | strtod( ptr, &endptr ); | ||
| 406 | if (*endptr == '"') | ||
| 407 | endptr++; | ||
| 408 | if (*endptr == '\0') | ||
| 409 | is_numeric=1; | ||
| 410 | } | ||
| 411 | |||
| 398 | } | 412 | } |
| 399 | else if (strstr (response, "Timeticks: ")) | 413 | else if (strstr (response, "Timeticks: ")) |
| 400 | show = strstr (response, "Timeticks: "); | 414 | show = strstr (response, "Timeticks: "); |
