summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-03-12 22:15:57 +0100
committerLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-03-12 22:15:57 +0100
commit5a79cd31c48307d18a637271f4a0a13327fd3073 (patch)
tree2cc3a9d370da08169f7c3e78e5090477212cc13d
parentee3c903fbe37cc5c7537921cdb31e39b4ea25bc6 (diff)
downloadmonitoring-plugins-5a79cd31.tar.gz
Reintroduce positional arguments
-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;