summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/check_users.c47
1 files changed, 31 insertions, 16 deletions
diff --git a/plugins/check_users.c b/plugins/check_users.c
index 61427f97..b7b7bd24 100644
--- a/plugins/check_users.c
+++ b/plugins/check_users.c
@@ -200,27 +200,42 @@ check_users_config_wrapper process_arguments(int argc, char **argv) {
200 } 200 }
201 } 201 }
202 202
203 int option_char = optind;
204
205 if (warning_range == NULL && argc > option_char) {
206 warning_range = argv[option_char++];
207 }
208
209 if (critical_range == NULL && argc > option_char) {
210 critical_range = argv[option_char++];
211 }
212
203 // TODO add proper verification for ranges here! 213 // TODO add proper verification for ranges here!
214 mp_range_parsed tmp;
204 if (warning_range) { 215 if (warning_range) {
205 mp_range_parsed tmp = mp_parse_range_string(warning_range); 216 tmp = mp_parse_range_string(warning_range);
206 if (tmp.error == MP_PARSING_SUCCES) { 217 } else {
207 result.config.thresholds.warning = tmp.range; 218 tmp = mp_parse_range_string(argv[option_char++]);
208 result.config.thresholds.warning_is_set = true; 219 }
209 } else { 220 if (tmp.error == MP_PARSING_SUCCES) {
210 printf("Failed to parse warning range: %s", warning_range); 221 result.config.thresholds.warning = tmp.range;
211 exit(STATE_UNKNOWN); 222 result.config.thresholds.warning_is_set = true;
212 } 223 } else {
224 printf("Failed to parse warning range: %s", warning_range);
225 exit(STATE_UNKNOWN);
213 } 226 }
214 227
215 if (critical_range) { 228 if (critical_range) {
216 mp_range_parsed tmp = mp_parse_range_string(critical_range); 229 tmp = mp_parse_range_string(critical_range);
217 if (tmp.error == MP_PARSING_SUCCES) { 230 } else {
218 result.config.thresholds.critical = tmp.range; 231 tmp = mp_parse_range_string(argv[option_char++]);
219 result.config.thresholds.critical_is_set = true; 232 }
220 } else { 233 if (tmp.error == MP_PARSING_SUCCES) {
221 printf("Failed to parse critical range: %s", critical_range); 234 result.config.thresholds.critical = tmp.range;
222 exit(STATE_UNKNOWN); 235 result.config.thresholds.critical_is_set = true;
223 } 236 } else {
237 printf("Failed to parse critical range: %s", critical_range);
238 exit(STATE_UNKNOWN);
224 } 239 }
225 240
226 return result; 241 return result;