[monitoring-plugins] Move negate' translate_state() to utils_base.h ...

Git Repository git at monitoring-plugins.org
Wed Jan 29 09:30:07 CET 2014


 Module: monitoring-plugins
 Branch: master
 Commit: 8fc9e5ac4b3a699f8d6b78471829692f0c92d5fa
 Author: Thomas Guyot-Sionnest <dermoth at aei.ca>
   Date: Wed Jan 29 03:20:23 2014 -0500
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=8fc9e5a

Move negate' translate_state() to utils_base.h mp_translate_state()

Also use strcasecmp imported from gnulib for simplicity

---

 lib/utils_base.c | 17 +++++++++++++++++
 lib/utils_base.h | 13 +++++++++----
 plugins/negate.c | 29 +++++------------------------
 3 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/lib/utils_base.c b/lib/utils_base.c
index f5f7506..04c4b4f 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
diff --git a/lib/utils_base.h b/lib/utils_base.h
index b4bd92e..04f6370 100644
--- a/lib/utils_base.h
+++ b/lib/utils_base.h
@@ -79,6 +79,10 @@ int np_check_if_root(void);
  * code from the above function, in case it's helpful for testing */
 int np_warn_if_not_root(void);
 
+/* mp_suid() returns true if the real and effective uids differs, such as when
+ * running a suid plugin */
+#define mp_suid() (getuid() != geteuid())
+
 /*
  * Extract the value from key/value pairs, or return NULL. The value returned
  * can be free()ed.
@@ -93,6 +97,11 @@ char *np_extract_value(const char*, const char*, char);
  */
 #define np_extract_ntpvar(l, n) np_extract_value(l, n, ',')
 
+/*
+ * Read a string representing a state (ok, warning... or numeric: 0, 1) and
+ * return the corresponding NP_STATE or ERROR)
+ */
+int mp_translate_state (char *);
 
 void np_enable_state(char *, int);
 state_data *np_state_read();
@@ -102,8 +111,4 @@ void np_init(char *, int argc, char **argv);
 void np_set_args(int argc, char **argv);
 void np_cleanup();
 
-/* mp_suid() returns true if the real and effective uids differs, such as when
- * running a suid plugin */
-#define mp_suid() (getuid() != geteuid())
-
 #endif /* _UTILS_BASE_ */
diff --git a/plugins/negate.c b/plugins/negate.c
index 84ad7eb..4bd09de 100644
--- a/plugins/negate.c
+++ b/plugins/negate.c
@@ -45,7 +45,6 @@ const char *email = "devel at monitoring-plugins.org";
 
 static const char **process_arguments (int, char **);
 int validate_arguments (char **);
-int translate_state (char *);
 void print_help (void);
 void print_usage (void);
 int subst_text = FALSE;
@@ -166,27 +165,27 @@ process_arguments (int argc, char **argv)
 				timeout_interval = atoi (optarg);
 			break;
 		case 'T':     /* Result to return on timeouts */
-			if ((timeout_state = translate_state(optarg)) == ERROR)
+			if ((timeout_state = mp_translate_state(optarg)) == ERROR)
 				usage4 (_("Timeout result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
 			break;
 		case 'o':     /* replacement for OK */
-			if ((state[STATE_OK] = translate_state(optarg)) == ERROR)
+			if ((state[STATE_OK] = mp_translate_state(optarg)) == ERROR)
 				usage4 (_("Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
 			permute = FALSE;
 			break;
 
 		case 'w':     /* replacement for WARNING */
-			if ((state[STATE_WARNING] = translate_state(optarg)) == ERROR)
+			if ((state[STATE_WARNING] = mp_translate_state(optarg)) == ERROR)
 				usage4 (_("Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
 			permute = FALSE;
 			break;
 		case 'c':     /* replacement for CRITICAL */
-			if ((state[STATE_CRITICAL] = translate_state(optarg)) == ERROR)
+			if ((state[STATE_CRITICAL] = mp_translate_state(optarg)) == ERROR)
 				usage4 (_("Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
 			permute = FALSE;
 			break;
 		case 'u':     /* replacement for UNKNOWN */
-			if ((state[STATE_UNKNOWN] = translate_state(optarg)) == ERROR)
+			if ((state[STATE_UNKNOWN] = mp_translate_state(optarg)) == ERROR)
 				usage4 (_("Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
 			permute = FALSE;
 			break;
@@ -218,24 +217,6 @@ validate_arguments (char **command_line)
 }
 
 
-int
-translate_state (char *state_text)
-{
-	char *temp_ptr;
-	for (temp_ptr = state_text; *temp_ptr; temp_ptr++) {
-		*temp_ptr = toupper(*temp_ptr);
-	}
-	if (!strcmp(state_text,"OK") || !strcmp(state_text,"0"))
-		return STATE_OK;
-	if (!strcmp(state_text,"WARNING") || !strcmp(state_text,"1"))
-		return STATE_WARNING;
-	if (!strcmp(state_text,"CRITICAL") || !strcmp(state_text,"2"))
-		return STATE_CRITICAL;
-	if (!strcmp(state_text,"UNKNOWN") || !strcmp(state_text,"3"))
-		return STATE_UNKNOWN;
-	return ERROR;
-}
-
 void
 print_help (void)
 {



More information about the Commits mailing list