[monitoring-plugins] check_cluster: general refactoring

Lorenz Kästle git at monitoring-plugins.org
Tue Mar 11 10:40:11 CET 2025


 Module: monitoring-plugins
 Branch: master
 Commit: 1a97496a83562b1d354609226b05857717c5ab5a
 Author: Lorenz Kästle <12514511+RincewindsHat at users.noreply.github.com>
   Date: Mon Mar 10 22:07:29 2025 +0100
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=1a97496a

check_cluster: general refactoring

---

 plugins/check_cluster.c | 41 +++++++++++++----------------------------
 1 file changed, 13 insertions(+), 28 deletions(-)

diff --git a/plugins/check_cluster.c b/plugins/check_cluster.c
index d6c4b1c5..72acde2e 100644
--- a/plugins/check_cluster.c
+++ b/plugins/check_cluster.c
@@ -60,11 +60,6 @@ static int verbose = 0;
 static int process_arguments(int /*argc*/, char ** /*argv*/);
 
 int main(int argc, char **argv) {
-	char *ptr;
-	int data_val;
-	int return_code = STATE_OK;
-	thresholds *thresholds = NULL;
-
 	setlocale(LC_ALL, "");
 	bindtextdomain(PACKAGE, LOCALEDIR);
 	textdomain(PACKAGE);
@@ -76,14 +71,16 @@ int main(int argc, char **argv) {
 		usage(_("Could not parse arguments"));
 	}
 
+	thresholds *thresholds = NULL;
 	/* Initialize the thresholds */
 	set_thresholds(&thresholds, warn_threshold, crit_threshold);
 	if (verbose) {
 		print_thresholds("check_cluster", thresholds);
 	}
 
+	int data_val;
 	/* check the data values */
-	for (ptr = strtok(data_vals, ","); ptr != NULL; ptr = strtok(NULL, ",")) {
+	for (char *ptr = strtok(data_vals, ","); ptr != NULL; ptr = strtok(NULL, ",")) {
 
 		data_val = atoi(ptr);
 
@@ -121,6 +118,7 @@ int main(int argc, char **argv) {
 		}
 	}
 
+	int return_code = STATE_OK;
 	/* return the status of the cluster */
 	if (check_type == CHECK_SERVICES) {
 		return_code = get_status(total_services_warning + total_services_unknown + total_services_critical, thresholds);
@@ -133,13 +131,10 @@ int main(int argc, char **argv) {
 			   total_hosts_up, total_hosts_down, total_hosts_unreachable);
 	}
 
-	return return_code;
+	exit(return_code);
 }
 
 int process_arguments(int argc, char **argv) {
-	int c;
-	char *ptr;
-	int option = 0;
 	static struct option longopts[] = {{"data", required_argument, 0, 'd'},     {"warning", required_argument, 0, 'w'},
 									   {"critical", required_argument, 0, 'c'}, {"label", required_argument, 0, 'l'},
 									   {"host", no_argument, 0, 'h'},           {"service", no_argument, 0, 's'},
@@ -151,36 +146,31 @@ int process_arguments(int argc, char **argv) {
 		return ERROR;
 	}
 
-	while (1) {
-
-		c = getopt_long(argc, argv, "hHsvVw:c:d:l:", longopts, &option);
+	int option = 0;
+	while (true) {
+		int option_index = getopt_long(argc, argv, "hHsvVw:c:d:l:", longopts, &option);
 
-		if (c == -1 || c == EOF || c == 1) {
+		if (option_index == -1 || option_index == EOF || option_index == 1) {
 			break;
 		}
 
-		switch (c) {
-
+		switch (option_index) {
 		case 'h': /* host cluster */
 			check_type = CHECK_HOSTS;
 			break;
-
 		case 's': /* service cluster */
 			check_type = CHECK_SERVICES;
 			break;
-
 		case 'w': /* warning threshold */
 			warn_threshold = strdup(optarg);
 			break;
-
 		case 'c': /* warning threshold */
 			crit_threshold = strdup(optarg);
 			break;
-
 		case 'd': /* data values */
-			data_vals = (char *)strdup(optarg);
+			data_vals = strdup(optarg);
 			/* validate data */
-			for (ptr = data_vals; ptr != NULL; ptr += 2) {
+			for (char *ptr = data_vals; ptr != NULL; ptr += 2) {
 				if (ptr[0] < '0' || ptr[0] > '3') {
 					return ERROR;
 				}
@@ -192,25 +182,20 @@ int process_arguments(int argc, char **argv) {
 				}
 			}
 			break;
-
 		case 'l': /* text label */
-			label = (char *)strdup(optarg);
+			label = strdup(optarg);
 			break;
-
 		case 'v': /* verbose */
 			verbose++;
 			break;
-
 		case 'V': /* version */
 			print_revision(progname, NP_VERSION);
 			exit(STATE_UNKNOWN);
 			break;
-
 		case 'H': /* help */
 			print_help();
 			exit(STATE_UNKNOWN);
 			break;
-
 		default:
 			return ERROR;
 			break;



More information about the Commits mailing list