aboutsummaryrefslogtreecommitdiff
path: root/plugins/check_procs.c
diff options
context:
space:
mode:
authorGravatar Ton Voon <ton.voon@opsera.com> 2011-01-21 13:14:33 +0000
committerGravatar Ton Voon <ton.voon@opsera.com> 2011-01-21 13:14:33 +0000
commit1a5a83bb82c35d888229fe9f815fbc663c0f4d3c (patch)
tree56a059f3cb927547d2905e65ed837b36affcc565 /plugins/check_procs.c
parentae2a66913706e4cb3fc870485abe34c0f3696124 (diff)
downloadmonitoring-plugins-1a5a83bb82c35d888229fe9f815fbc663c0f4d3c.tar.gz
Fix for regex input of '|', being output causing problems with Nagios' parsing of
performance data. Now replaced with ','
Diffstat (limited to 'plugins/check_procs.c')
-rw-r--r--plugins/check_procs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/plugins/check_procs.c b/plugins/check_procs.c
index 2151fb38..d875a618 100644
--- a/plugins/check_procs.c
+++ b/plugins/check_procs.c
@@ -318,6 +318,8 @@ process_arguments (int argc, char **argv)
int err;
int cflags = REG_NOSUB | REG_EXTENDED;
char errbuf[MAX_INPUT_BUFFER];
+ char *temp_string;
+ int i=0;
static struct option longopts[] = {
{"warning", required_argument, 0, 'w'},
{"critical", required_argument, 0, 'c'},
@@ -450,7 +452,14 @@ process_arguments (int argc, char **argv)
regerror (err, &re_args, errbuf, MAX_INPUT_BUFFER);
die (STATE_UNKNOWN, "PROCS %s: %s - %s\n", _("UNKNOWN"), _("Could not compile regular expression"), errbuf);
}
- asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), optarg);
+ /* Strip off any | within the regex optarg */
+ temp_string = strdup(optarg);
+ while(temp_string[i]!='\0'){
+ if(temp_string[i]=='|')
+ temp_string[i]=',';
+ i++;
+ }
+ asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), temp_string);
options |= EREG_ARGS;
break;
case 'r': /* RSS */