summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: aca1e6a)
raw | patch | inline | side by side (parent: aca1e6a)
author | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | |
Fri, 2 May 2008 09:28:15 +0000 (09:28 +0000) | ||
committer | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | |
Fri, 2 May 2008 09:28:15 +0000 (09:28 +0000) |
Also changed:
- default timeout to 11 instead of 9 (since it's recommended to have a higher timeout, and many plugins default to 10 seconds)
- If there's no STDOUT lines returned, still returns the returned result if it's NON-ok instead of forcing it to UNKNOWN
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1989 f882894a-f735-0410-b71e-b25c423dba1c
- default timeout to 11 instead of 9 (since it's recommended to have a higher timeout, and many plugins default to 10 seconds)
- If there's no STDOUT lines returned, still returns the returned result if it's NON-ok instead of forcing it to UNKNOWN
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1989 f882894a-f735-0410-b71e-b25c423dba1c
NEWS | patch | blob | history | |
plugins/negate.c | patch | blob | history |
index a0624aa2c697694081e09c1f5540c352ccb56d84..a6c1a4d2ba908aeb4ac3f157a504d0470a1ecbaf 100644 (file)
--- a/NEWS
+++ b/NEWS
check_dns now allow to repeat -a to match multiple possibly returned address (common with load balancers)
check_mysql now try clearing password in processlist just like check_mysql_query
check_mysql and check_mysql_query now support sockets explicitely (-s, --socket)
+ negate now has the ability to replace the status text as well (-s, --substitute)
1.4.11 13th December 2007
Fixed check_http regression in 1.4.10 where following redirects to
diff --git a/plugins/negate.c b/plugins/negate.c
index eccc404dfe1c3af2437e5c9e890ad918b6b6add9..40ff1912c08ef2a76334c2a7a201d58f6c7d9ed8 100644 (file)
--- a/plugins/negate.c
+++ b/plugins/negate.c
* Nagios negate plugin
*
* License: GPL
-* Copyright (c) 2002-2007 Nagios Plugins Development Team
+* Copyright (c) 2002-2008 Nagios Plugins Development Team
*
* Last Modified: $Date$
*
const char *progname = "negate";
const char *revision = "$Revision$";
-const char *copyright = "2002-2007";
+const char *copyright = "2002-2008";
const char *email = "nagiosplug-devel@lists.sourceforge.net";
-#define DEFAULT_TIMEOUT 9
+#define DEFAULT_TIMEOUT 11
#include "common.h"
#include "utils.h"
int validate_arguments (char **);
void print_help (void);
void print_usage (void);
+int subst_text = FALSE;
static int state[4] = {
STATE_OK,
main (int argc, char **argv)
{
int found = 0, result = STATE_UNKNOWN;
- char *buf;
+ char *buf, *sub;
char **command_line;
output chld_out, chld_err;
int i;
exit (STATE_WARNING);
}
+ /* Return UNKNOWN or worse if no output is returned */
if (chld_out.lines == 0)
- die (STATE_UNKNOWN, _("No data returned from command\n"));
+ die (max_state_alt (result, STATE_UNKNOWN), _("No data returned from command\n"));
for (i = 0; i < chld_out.lines; i++) {
+ if (subst_text && result != state[result] &&
+ result >= 0 && result <= 4) {
+ /* Loop over each match found */
+ while ((sub = strstr (chld_out.line[i], state_text (result)))) {
+ /* Terminate the first part and skip over the string we'll substitute */
+ *sub = '\0';
+ sub += strlen (state_text (result));
+ /* then put everything back together */
+ asprintf (&chld_out.line[i], "%s%s%s", chld_out.line[i], state_text (state[result]), sub);
+ }
+ }
printf ("%s\n", chld_out.line[i]);
}
{"warning", required_argument, 0, 'w'},
{"critical", required_argument, 0, 'c'},
{"unknown", required_argument, 0, 'u'},
+ {"substitute", no_argument, 0, 's'},
{0, 0, 0, 0}
};
while (1) {
- c = getopt_long (argc, argv, "+hVt:o:w:c:u:", longopts, &option);
+ c = getopt_long (argc, argv, "+hVt:o:w:c:u:s", longopts, &option);
if (c == -1 || c == EOF)
break;
usage4 (_("Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
permute = FALSE;
break;
+ case 's': /* Substitute status text */
+ subst_text = TRUE;
+ break;
}
}
printf (_(UT_TIMEOUT), DEFAULT_TIMEOUT);
printf (" %s\n", _("Keep timeout longer than the plugin timeout to retain CRITICAL status."));
- printf(" -o,--ok=STATUS\n");
- printf(" -w,--warning=STATUS\n");
- printf(" -c,--critical=STATUS\n");
- printf(" -u,--unknown=STATUS\n");
+ printf(" -o, --ok=STATUS\n");
+ printf(" -w, --warning=STATUS\n");
+ printf(" -c, --critical=STATUS\n");
+ printf(" -u, --unknown=STATUS\n");
printf(_(" STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n"));
printf(_(" quotes. Numeric values are accepted. If nothing is specified, permutes\n"));
printf(_(" OK and CRITICAL.\n"));
+ printf(" -s, --substitute\n");
+ printf(_(" Substitute output text as well. Will only substitute text in CAPITALS\n"));
printf ("\n");
printf ("%s\n", _("Examples:"));
printf (" %s\n", _("This will return OK instead of WARNING and UNKNOWN instead of CRITICAL"));
printf ("\n");
printf ("%s\n", _("Notes:"));
- printf ("%s\n", _("This plugin is a wrapper to take the output of another plugin and invert it."));
- printf ("%s\n", _("The full path of the plugin must be provided."));
- printf ("%s\n", _("If the wrapped plugin returns OK, the wrapper will return CRITICAL."));
- printf ("%s\n", _("If the wrapped plugin returns CRITICAL, the wrapper will return OK."));
- printf ("%s\n", _("Otherwise, the output state of the wrapped plugin is unchanged."));
+ printf (" %s\n", _("This plugin is a wrapper to take the output of another plugin and invert it."));
+ printf (" %s\n", _("The full path of the plugin must be provided."));
+ printf (" %s\n", _("If the wrapped plugin returns OK, the wrapper will return CRITICAL."));
+ printf (" %s\n", _("If the wrapped plugin returns CRITICAL, the wrapper will return OK."));
+ printf (" %s\n", _("Otherwise, the output state of the wrapped plugin is unchanged."));
printf (_(UT_SUPPORT));
}
print_usage (void)
{
printf (_("Usage:"));
- printf ("%s [-t timeout] [-owcu STATE] <definition of wrapped plugin>\n", progname);
+ printf ("%s [-t timeout] [-owcu STATE] [-s] <definition of wrapped plugin>\n", progname);
}