[monitoring-plugins] Reintroduce positional arguments

Lorenz Kästle git at monitoring-plugins.org
Mon Aug 11 23:30:12 CEST 2025


 Module: monitoring-plugins
 Branch: master
 Commit: 5a79cd31c48307d18a637271f4a0a13327fd3073
 Author: Lorenz Kästle <12514511+RincewindsHat at users.noreply.github.com>
   Date: Wed Mar 12 22:15:57 2025 +0100
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=5a79cd31

Reintroduce positional arguments

---

 plugins/check_users.c | 47 +++++++++++++++++++++++++++++++----------------
 1 file 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) {
 		}
 	}
 
+	int option_char = optind;
+
+	if (warning_range == NULL && argc > option_char) {
+		warning_range = argv[option_char++];
+	}
+
+	if (critical_range == NULL && argc > option_char) {
+		critical_range = argv[option_char++];
+	}
+
 	// TODO add proper verification for ranges here!
+	mp_range_parsed tmp;
 	if (warning_range) {
-		mp_range_parsed tmp = mp_parse_range_string(warning_range);
-		if (tmp.error == MP_PARSING_SUCCES) {
-			result.config.thresholds.warning = tmp.range;
-			result.config.thresholds.warning_is_set = true;
-		} else {
-			printf("Failed to parse warning range: %s", warning_range);
-			exit(STATE_UNKNOWN);
-		}
+		tmp = mp_parse_range_string(warning_range);
+	} else {
+		tmp = mp_parse_range_string(argv[option_char++]);
+	}
+	if (tmp.error == MP_PARSING_SUCCES) {
+		result.config.thresholds.warning = tmp.range;
+		result.config.thresholds.warning_is_set = true;
+	} else {
+		printf("Failed to parse warning range: %s", warning_range);
+		exit(STATE_UNKNOWN);
 	}
 
 	if (critical_range) {
-		mp_range_parsed tmp = mp_parse_range_string(critical_range);
-		if (tmp.error == MP_PARSING_SUCCES) {
-			result.config.thresholds.critical = tmp.range;
-			result.config.thresholds.critical_is_set = true;
-		} else {
-			printf("Failed to parse critical range: %s", critical_range);
-			exit(STATE_UNKNOWN);
-		}
+		tmp = mp_parse_range_string(critical_range);
+	} else {
+		tmp = mp_parse_range_string(argv[option_char++]);
+	}
+	if (tmp.error == MP_PARSING_SUCCES) {
+		result.config.thresholds.critical = tmp.range;
+		result.config.thresholds.critical_is_set = true;
+	} else {
+		printf("Failed to parse critical range: %s", critical_range);
+		exit(STATE_UNKNOWN);
 	}
 
 	return result;



More information about the Commits mailing list