mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-05-28 04:35:40 -04:00
Move negate' translate_state() to utils_base.h mp_translate_state()
Also use strcasecmp imported from gnulib for simplicity
This commit is contained in:
parent
55f97c2021
commit
8fc9e5ac4b
3 changed files with 31 additions and 28 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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_ */
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ const char *email = "devel@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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue