mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-04-21 14:19:30 -04:00
check_http/check_curl: added a --regex-state option to change the state of a regex check
from the default CRITICAL to something else (#1213)
This commit is contained in:
parent
4c4031100a
commit
f29785f503
2 changed files with 32 additions and 6 deletions
|
|
@ -134,6 +134,7 @@ char regexp[MAX_RE_SIZE];
|
|||
int cflags = REG_NOSUB | REG_EXTENDED | REG_NEWLINE;
|
||||
int errcode;
|
||||
bool invert_regex = false;
|
||||
int state_regex = STATE_CRITICAL;
|
||||
|
||||
char *server_address = NULL;
|
||||
char *host_name = NULL;
|
||||
|
|
@ -1133,7 +1134,7 @@ GOT_FIRST_CERT:
|
|||
strcpy(msg, tmp);
|
||||
|
||||
}
|
||||
result = STATE_CRITICAL;
|
||||
result = state_regex;
|
||||
} else {
|
||||
regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER);
|
||||
|
||||
|
|
@ -1391,7 +1392,8 @@ process_arguments (int argc, char **argv)
|
|||
HTTP_VERSION_OPTION,
|
||||
AUTOMATIC_DECOMPRESSION,
|
||||
COOKIE_JAR,
|
||||
HAPROXY_PROTOCOL
|
||||
HAPROXY_PROTOCOL,
|
||||
STATE_REGEX
|
||||
};
|
||||
|
||||
int option = 0;
|
||||
|
|
@ -1430,6 +1432,7 @@ process_arguments (int argc, char **argv)
|
|||
{"content-type", required_argument, 0, 'T'},
|
||||
{"pagesize", required_argument, 0, 'm'},
|
||||
{"invert-regex", no_argument, NULL, INVERT_REGEX},
|
||||
{"state-regex", required_argument, 0, STATE_REGEX},
|
||||
{"use-ipv4", no_argument, 0, '4'},
|
||||
{"use-ipv6", no_argument, 0, '6'},
|
||||
{"extended-perfdata", no_argument, 0, 'E'},
|
||||
|
|
@ -1765,6 +1768,13 @@ process_arguments (int argc, char **argv)
|
|||
case INVERT_REGEX:
|
||||
invert_regex = true;
|
||||
break;
|
||||
case STATE_REGEX:
|
||||
if (!strcmp (optarg, "critical"))
|
||||
state_regex = STATE_CRITICAL;
|
||||
else if (!strcmp (optarg, "warning"))
|
||||
state_regex = STATE_WARNING;
|
||||
else usage2 (_("Invalid state-regex option"), optarg);
|
||||
break;
|
||||
case '4':
|
||||
address_family = AF_INET;
|
||||
break;
|
||||
|
|
@ -2040,7 +2050,10 @@ print_help (void)
|
|||
printf (" %s\n", "-R, --eregi=STRING");
|
||||
printf (" %s\n", _("Search page for case-insensitive regex STRING"));
|
||||
printf (" %s\n", "--invert-regex");
|
||||
printf (" %s\n", _("Return CRITICAL if found, OK if not\n"));
|
||||
printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)"));
|
||||
printf (" %s\n", _("can be changed with --state--regex)"));
|
||||
printf (" %s\n", "--regex-state=STATE");
|
||||
printf (" %s\n", _("Return STATE if regex is found, OK if not\n"));
|
||||
printf (" %s\n", "-a, --authorization=AUTH_PAIR");
|
||||
printf (" %s\n", _("Username:password on sites with basic authentication"));
|
||||
printf (" %s\n", "-b, --proxy-authorization=AUTH_PAIR");
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ char errbuf[MAX_INPUT_BUFFER];
|
|||
int cflags = REG_NOSUB | REG_EXTENDED | REG_NEWLINE;
|
||||
int errcode;
|
||||
int invert_regex = 0;
|
||||
int state_regex = STATE_CRITICAL;
|
||||
|
||||
struct timeval tv;
|
||||
struct timeval tv_temp;
|
||||
|
|
@ -210,7 +211,8 @@ bool process_arguments (int argc, char **argv)
|
|||
INVERT_REGEX = CHAR_MAX + 1,
|
||||
SNI_OPTION,
|
||||
MAX_REDIRS_OPTION,
|
||||
CONTINUE_AFTER_CHECK_CERT
|
||||
CONTINUE_AFTER_CHECK_CERT,
|
||||
STATE_REGEX
|
||||
};
|
||||
|
||||
int option = 0;
|
||||
|
|
@ -246,6 +248,7 @@ bool process_arguments (int argc, char **argv)
|
|||
{"content-type", required_argument, 0, 'T'},
|
||||
{"pagesize", required_argument, 0, 'm'},
|
||||
{"invert-regex", no_argument, NULL, INVERT_REGEX},
|
||||
{"state-regex", required_argument, 0, STATE_REGEX},
|
||||
{"use-ipv4", no_argument, 0, '4'},
|
||||
{"use-ipv6", no_argument, 0, '6'},
|
||||
{"extended-perfdata", no_argument, 0, 'E'},
|
||||
|
|
@ -511,6 +514,13 @@ bool process_arguments (int argc, char **argv)
|
|||
case INVERT_REGEX:
|
||||
invert_regex = 1;
|
||||
break;
|
||||
case STATE_REGEX:
|
||||
if (!strcmp (optarg, "critical"))
|
||||
state_regex = STATE_CRITICAL;
|
||||
else if (!strcmp (optarg, "warning"))
|
||||
state_regex = STATE_WARNING;
|
||||
else usage2 (_("Invalid state-regex option"), optarg);
|
||||
break;
|
||||
case '4':
|
||||
address_family = AF_INET;
|
||||
break;
|
||||
|
|
@ -1317,7 +1327,7 @@ check_http (void)
|
|||
xasprintf (&msg, _("%spattern not found, "), msg);
|
||||
else
|
||||
xasprintf (&msg, _("%spattern found, "), msg);
|
||||
result = STATE_CRITICAL;
|
||||
result = state_regex;
|
||||
}
|
||||
else {
|
||||
/* FIXME: Shouldn't that be UNKNOWN? */
|
||||
|
|
@ -1793,7 +1803,10 @@ print_help (void)
|
|||
printf (" %s\n", "-R, --eregi=STRING");
|
||||
printf (" %s\n", _("Search page for case-insensitive regex STRING"));
|
||||
printf (" %s\n", "--invert-regex");
|
||||
printf (" %s\n", _("Return CRITICAL if found, OK if not\n"));
|
||||
printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)"));
|
||||
printf (" %s\n", _("can be changed with --state--regex)"));
|
||||
printf (" %s\n", "--regex-state=STATE");
|
||||
printf (" %s\n", _("Return STATE if regex is found, OK if not\n"));
|
||||
|
||||
printf (" %s\n", "-a, --authorization=AUTH_PAIR");
|
||||
printf (" %s\n", _("Username:password on sites with basic authentication"));
|
||||
|
|
|
|||
Loading…
Reference in a new issue