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_ */ |
