diff options
Diffstat (limited to 'plugins/utils.c')
-rw-r--r-- | plugins/utils.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index e204e238..b35b78af 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -24,7 +24,8 @@ extern const char *progname; void support (void); char *clean_revstring (const char *); void print_revision (const char *, const char *); -void terminate (int, const char *fmt, ...); +void die (int result, const char *fmt, ...); +void terminate (int result, const char *fmt, ...); RETSIGTYPE timeout_alarm_handler (int); int is_integer (char *); @@ -50,6 +51,8 @@ char *strnl (char *str); char *strpcpy (char *dest, const char *src, const char *str); char *strpcat (char *dest, const char *src, const char *str); +char *state_text (int result); + #define LABELLEN 63 #define STRLEN 64 #define TXTBLK 128 @@ -140,6 +143,33 @@ print_revision (const char *command_name, const char *revision_string) } +char * +state_text (int result) +{ + switch (result) { + case STATE_OK: + return "OK"; + case STATE_WARNING: + return "WARNING"; + case STATE_CRITICAL: + return "CRITICAL"; + case STATE_DEPENDENT: + return "DEPENDENT"; + default: + return "UNKNOWN"; + } +} + +void +die (int result, const char *fmt, ...) +{ + printf ("%s %s: ", sizeof (char) + index(progname, '_'), state_text(result)); + va_list ap; + va_start (ap, fmt); + vprintf (fmt, ap); + va_end (ap); + exit (result); +} void terminate (int result, const char *fmt, ...) |