aboutsummaryrefslogtreecommitdiff
path: root/lib/utils_base.c
diff options
context:
space:
mode:
authorGravatar Thomas Guyot-Sionnest <dermoth@aei.ca> 2014-01-29 03:20:23 -0500
committerGravatar Thomas Guyot-Sionnest <dermoth@aei.ca> 2014-01-29 03:20:23 -0500
commit8fc9e5ac4b3a699f8d6b78471829692f0c92d5fa (patch)
tree4d630aa158d65602307723e9c7c6d41eca82b94d /lib/utils_base.c
parent55f97c2021bf920b62148ea31fdf56d95572d944 (diff)
downloadmonitoring-plugins-8fc9e5ac4b3a699f8d6b78471829692f0c92d5fa.tar.gz
Move negate' translate_state() to utils_base.h mp_translate_state()
Also use strcasecmp imported from gnulib for simplicity
Diffstat (limited to 'lib/utils_base.c')
-rw-r--r--lib/utils_base.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/utils_base.c b/lib/utils_base.c
index f5f75067..04c4b4f9 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -369,6 +369,23 @@ char *np_extract_value(const char *varlist, const char *name, char sep) {
return value;
}
+
+/*
+ * Read a string representing a state (ok, warning... or numeric: 0, 1) and
+ * return the corresponding STATE_ value or ERROR)
+ */
+int mp_translate_state (char *state_text) {
+ if (!strcasecmp(state_text,"OK") || !strcmp(state_text,"0"))
+ return STATE_OK;
+ if (!strcasecmp(state_text,"WARNING") || !strcmp(state_text,"1"))
+ return STATE_WARNING;
+ if (!strcasecmp(state_text,"CRITICAL") || !strcmp(state_text,"2"))
+ return STATE_CRITICAL;
+ if (!strcasecmp(state_text,"UNKNOWN") || !strcmp(state_text,"3"))
+ return STATE_UNKNOWN;
+ return ERROR;
+}
+
/*
* Returns a string to use as a keyname, based on an md5 hash of argv, thus
* hopefully a unique key per service/plugin invocation. Use the extra-opts