diff options
-rw-r--r-- | plugins/utils.c | 32 | ||||
-rw-r--r-- | plugins/utils.h | 10 |
2 files changed, 33 insertions, 9 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index e204e23..b35b78a 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
@@ -24,7 +24,8 @@ extern const char *progname; | |||
24 | void support (void); | 24 | void support (void); |
25 | char *clean_revstring (const char *); | 25 | char *clean_revstring (const char *); |
26 | void print_revision (const char *, const char *); | 26 | void print_revision (const char *, const char *); |
27 | void terminate (int, const char *fmt, ...); | 27 | void die (int result, const char *fmt, ...); |
28 | void terminate (int result, const char *fmt, ...); | ||
28 | RETSIGTYPE timeout_alarm_handler (int); | 29 | RETSIGTYPE timeout_alarm_handler (int); |
29 | 30 | ||
30 | int is_integer (char *); | 31 | int is_integer (char *); |
@@ -50,6 +51,8 @@ char *strnl (char *str); | |||
50 | char *strpcpy (char *dest, const char *src, const char *str); | 51 | char *strpcpy (char *dest, const char *src, const char *str); |
51 | char *strpcat (char *dest, const char *src, const char *str); | 52 | char *strpcat (char *dest, const char *src, const char *str); |
52 | 53 | ||
54 | char *state_text (int result); | ||
55 | |||
53 | #define LABELLEN 63 | 56 | #define LABELLEN 63 |
54 | #define STRLEN 64 | 57 | #define STRLEN 64 |
55 | #define TXTBLK 128 | 58 | #define TXTBLK 128 |
@@ -140,6 +143,33 @@ print_revision (const char *command_name, const char *revision_string) | |||
140 | 143 | ||
141 | } | 144 | } |
142 | 145 | ||
146 | char * | ||
147 | state_text (int result) | ||
148 | { | ||
149 | switch (result) { | ||
150 | case STATE_OK: | ||
151 | return "OK"; | ||
152 | case STATE_WARNING: | ||
153 | return "WARNING"; | ||
154 | case STATE_CRITICAL: | ||
155 | return "CRITICAL"; | ||
156 | case STATE_DEPENDENT: | ||
157 | return "DEPENDENT"; | ||
158 | default: | ||
159 | return "UNKNOWN"; | ||
160 | } | ||
161 | } | ||
162 | |||
163 | void | ||
164 | die (int result, const char *fmt, ...) | ||
165 | { | ||
166 | printf ("%s %s: ", sizeof (char) + index(progname, '_'), state_text(result)); | ||
167 | va_list ap; | ||
168 | va_start (ap, fmt); | ||
169 | vprintf (fmt, ap); | ||
170 | va_end (ap); | ||
171 | exit (result); | ||
172 | } | ||
143 | 173 | ||
144 | void | 174 | void |
145 | terminate (int result, const char *fmt, ...) | 175 | terminate (int result, const char *fmt, ...) |
diff --git a/plugins/utils.h b/plugins/utils.h index 43b612c..b345f7a 100644 --- a/plugins/utils.h +++ b/plugins/utils.h | |||
@@ -17,6 +17,7 @@ char *my_basename (char *); | |||
17 | void support (void); | 17 | void support (void); |
18 | char *clean_revstring (const char *revstring); | 18 | char *clean_revstring (const char *revstring); |
19 | void print_revision (const char *, const char *); | 19 | void print_revision (const char *, const char *); |
20 | void die (int result, const char *fmt, ...); | ||
20 | void terminate (int result, char *msg, ...); | 21 | void terminate (int result, char *msg, ...); |
21 | extern RETSIGTYPE timeout_alarm_handler (int); | 22 | extern RETSIGTYPE timeout_alarm_handler (int); |
22 | 23 | ||
@@ -71,17 +72,10 @@ void usage (char *msg); | |||
71 | void usage2(char *msg, char *arg); | 72 | void usage2(char *msg, char *arg); |
72 | void usage3(char *msg, char arg); | 73 | void usage3(char *msg, char arg); |
73 | 74 | ||
75 | char *state_text (int result); | ||
74 | 76 | ||
75 | #define max(a,b) (((a)>(b))?(a):(b)) | 77 | #define max(a,b) (((a)>(b))?(a):(b)) |
76 | 78 | ||
77 | #define state_text(a) \ | ||
78 | (a)==0?"OK":\ | ||
79 | (a)==1?"WARNING":\ | ||
80 | (a)==2?"CRITICAL":\ | ||
81 | (a)==3?"UNKNOWN":\ | ||
82 | (a)==4?"DEPENDENT":\ | ||
83 | "UNKNOWN" | ||
84 | |||
85 | /* The idea here is that, although not every plugin will use all of these, | 79 | /* The idea here is that, although not every plugin will use all of these, |
86 | most will or should. Therefore, for consistency, these very common | 80 | most will or should. Therefore, for consistency, these very common |
87 | options should have only these meanings throughout the overall suite */ | 81 | options should have only these meanings throughout the overall suite */ |