diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/utils_base.c | 17 | ||||
-rw-r--r-- | lib/utils_base.h | 13 |
2 files changed, 26 insertions, 4 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) { | |||
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 | */ | ||
377 | int 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 b4bd92ee..04f6370c 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 */ |
80 | int np_warn_if_not_root(void); | 80 | int 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 | */ | ||
104 | int mp_translate_state (char *); | ||
96 | 105 | ||
97 | void np_enable_state(char *, int); | 106 | void np_enable_state(char *, int); |
98 | state_data *np_state_read(); | 107 | state_data *np_state_read(); |
@@ -102,8 +111,4 @@ void np_init(char *, int argc, char **argv); | |||
102 | void np_set_args(int argc, char **argv); | 111 | void np_set_args(int argc, char **argv); |
103 | void np_cleanup(); | 112 | void 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_ */ |