summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/utils_base.c17
-rw-r--r--lib/utils_base.h13
2 files changed, 26 insertions, 4 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) {
369 return value; 369 return value;
370} 370}
371 371
372
373/*
374 * Read a string representing a state (ok, warning... or numeric: 0, 1) and
375 * return the corresponding STATE_ value or ERROR)
376 */
377int mp_translate_state (char *state_text) {
378 if (!strcasecmp(state_text,"OK") || !strcmp(state_text,"0"))
379 return STATE_OK;
380 if (!strcasecmp(state_text,"WARNING") || !strcmp(state_text,"1"))
381 return STATE_WARNING;
382 if (!strcasecmp(state_text,"CRITICAL") || !strcmp(state_text,"2"))
383 return STATE_CRITICAL;
384 if (!strcasecmp(state_text,"UNKNOWN") || !strcmp(state_text,"3"))
385 return STATE_UNKNOWN;
386 return ERROR;
387}
388
372/* 389/*
373 * Returns a string to use as a keyname, based on an md5 hash of argv, thus 390 * Returns a string to use as a keyname, based on an md5 hash of argv, thus
374 * hopefully a unique key per service/plugin invocation. Use the extra-opts 391 * 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);
79 * code from the above function, in case it's helpful for testing */ 79 * code from the above function, in case it's helpful for testing */
80int np_warn_if_not_root(void); 80int np_warn_if_not_root(void);
81 81
82/* mp_suid() returns true if the real and effective uids differs, such as when
83 * running a suid plugin */
84#define mp_suid() (getuid() != geteuid())
85
82/* 86/*
83 * Extract the value from key/value pairs, or return NULL. The value returned 87 * Extract the value from key/value pairs, or return NULL. The value returned
84 * can be free()ed. 88 * can be free()ed.
@@ -93,6 +97,11 @@ char *np_extract_value(const char*, const char*, char);
93 */ 97 */
94#define np_extract_ntpvar(l, n) np_extract_value(l, n, ',') 98#define np_extract_ntpvar(l, n) np_extract_value(l, n, ',')
95 99
100/*
101 * Read a string representing a state (ok, warning... or numeric: 0, 1) and
102 * return the corresponding NP_STATE or ERROR)
103 */
104int mp_translate_state (char *);
96 105
97void np_enable_state(char *, int); 106void np_enable_state(char *, int);
98state_data *np_state_read(); 107state_data *np_state_read();
@@ -102,8 +111,4 @@ void np_init(char *, int argc, char **argv);
102void np_set_args(int argc, char **argv); 111void np_set_args(int argc, char **argv);
103void np_cleanup(); 112void np_cleanup();
104 113
105/* mp_suid() returns true if the real and effective uids differs, such as when
106 * running a suid plugin */
107#define mp_suid() (getuid() != geteuid())
108
109#endif /* _UTILS_BASE_ */ 114#endif /* _UTILS_BASE_ */