diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index cb13bc9ae3e22cb3a5fd893f832a46da9e95c9a5..2aded73b7e85dbd3653a7638a09624505ef5a5b0 100644 (file)
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
*
*****************************************************************************/
-#define PROGNAME "check_snmp"
+const char *progname = "check_snmp";
#define REVISION "$Revision$"
#define COPYRIGHT "1999-2002"
#define AUTHOR "Ethan Galstad"
regex_t preg;
regmatch_t pmatch[10];
char timestamp[10] = "";
-char regex[MAX_INPUT_BUFFER];
char errbuf[MAX_INPUT_BUFFER];
int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE;
int eflags = 0;
usage ("Incorrect arguments supplied\n");
/* create the command line to execute */
- asprintf (&command_line, "%s -m %s -v %s %s %s:%s %s",
- PATH_TO_SNMPGET, miblist, proto, authpriv, server_address, port, oid);
+ asprintf (&command_line, "%s -t 1 -r %d -m %s -v %s %s %s:%s %s",
+ PATH_TO_SNMPGET, timeout_interval - 1, miblist, proto,
+ authpriv, server_address, port, oid);
if (verbose)
printf ("%s\n", command_line);
show = strstr (response, "Gauge: ") + 7;
else if (strstr (response, "Gauge32: "))
show = strstr (response, "Gauge32: ") + 9;
+ else if (strstr (response, "Counter32: "))
+ show = strstr (response, "Counter32: ") + 11;
else if (strstr (response, "INTEGER: "))
show = strstr (response, "INTEGER: ") + 9;
+ else if (strstr (response, "STRING: "))
+ show = strstr (response, "STRING: ") + 8;
else
show = response;
p2 = show;
eval_method[i] & WARN_EQ ||
eval_method[i] & WARN_NE) {
p2 = strpbrk (p2, "0123456789");
+ if (p2 == NULL)
+ terminate (STATE_UNKNOWN,"No valid data returned");
response_value[i] = strtoul (p2, NULL, 10);
iresult = check_num (i);
asprintf (&show, "%lu", response_value[i]);
int c = 1;
int j = 0, jj = 0, ii = 0;
-#ifdef HAVE_GETOPT_H
int option_index = 0;
static struct option long_options[] = {
STD_LONG_OPTS,
{"privpasswd", required_argument, 0, 'X'},
{0, 0, 0, 0}
};
-#endif
if (argc < 2)
return ERROR;
}
while (1) {
-#ifdef HAVE_GETOPT_H
- c =
- getopt_long (argc, argv, "hvVt:c:w:H:C:o:e:E:d:D:s:R:r:l:u:p:m:P:L:U:a:A:X:",
+ c = getopt_long (argc, argv, "hvVt:c:w:H:C:o:e:E:d:D:s:R:r:l:u:p:m:P:L:U:a:A:X:",
long_options, &option_index);
-#else
- c = getopt (argc, argv, "hvVt:c:w:H:C:o:e:E:d:D:s:R:r:l:u:p:m:P:L:U:a:A:X:");
-#endif
if (c == -1 || c == EOF)
break;
print_help ();
exit (STATE_OK);
case 'V': /* version */
- print_revision (PROGNAME, REVISION);
+ print_revision (progname, REVISION);
exit (STATE_OK);
case 'v': /* verbose */
verbose = TRUE;
void
print_help (void)
{
- print_revision (PROGNAME, REVISION);
+ print_revision (progname, REVISION);
printf
- ("Copyright (c) %s %s <%s>\n\n%s\n",
- COPYRIGHT, AUTHOR, EMAIL, SUMMARY);
+ ("Copyright (c) %s %s <%s>\n\n%s\n", COPYRIGHT, AUTHOR, EMAIL, SUMMARY);
print_usage ();
printf
("\nOptions:\n" LONGOPTIONS "\n" DESCRIPTION "\n" NOTES "\n",
("Usage:\n" " %s %s\n"
" %s (-h | --help) for detailed help\n"
" %s (-V | --version) for version information\n",
- PROGNAME, OPTIONS, PROGNAME, PROGNAME);
+ progname, OPTIONS, progname, progname);
}
\f