From 7616b1b460b0a3e0f51089c371bd5364e75dfb9d Mon Sep 17 00:00:00 2001
From: Karl DeBisschop <kdebisschop@users.sourceforge.net>
Date: Wed, 25 Feb 2004 08:12:56 +0000
Subject: change some datatypes to llu for very large swaps

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@825 f882894a-f735-0410-b71e-b25c423dba1c

diff --git a/plugins/check_swap.c b/plugins/check_swap.c
index dfa2180..02b043e 100644
--- a/plugins/check_swap.c
+++ b/plugins/check_swap.c
@@ -42,8 +42,8 @@ void print_help (void);
 
 int warn_percent = 0;
 int crit_percent = 0;
-long unsigned int warn_size = 0;
-long unsigned int crit_size = 0;
+unsigned long long warn_size = 0;
+unsigned long long crit_size = 0;
 int verbose;
 int allswaps;
 
@@ -51,8 +51,8 @@ int
 main (int argc, char **argv)
 {
 	int percent_used, percent;
-	long unsigned int total_swap = 0, used_swap = 0, free_swap = 0;
-	long unsigned int dsktotal, dskused, dskfree;
+	unsigned long long total_swap = 0, used_swap = 0, free_swap = 0;
+	unsigned long long dsktotal, dskused, dskfree;
 	int result = STATE_OK;
 	char input_buffer[MAX_INPUT_BUFFER];
 	char *perf;
@@ -82,7 +82,7 @@ main (int argc, char **argv)
 #ifdef HAVE_PROC_MEMINFO
 	fp = fopen (PROC_MEMINFO, "r");
 	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, fp)) {
-		if (sscanf (input_buffer, " %s %lu %lu %lu", str, &dsktotal, &dskused, &dskfree) == 4 &&
+		if (sscanf (input_buffer, " %s %llu %llu %llu", str, &dsktotal, &dskused, &dskfree) == 4 &&
 		    strstr (str, "Swap")) {
 			dsktotal = dsktotal / 1048576;
 			dskused = dskused / 1048576;
@@ -94,7 +94,7 @@ main (int argc, char **argv)
 				percent = 100 * (((double) dskused) / ((double) dsktotal));
 				result = max_state (result, check_swap (percent, dskfree));
 				if (verbose)
-					asprintf (&status, "%s [%lu (%d%%)]", status, dskfree, 100 - percent);
+					asprintf (&status, "%s [%llu (%d%%)]", status, dskfree, 100 - percent);
 			}
 		}
 	}
@@ -195,7 +195,7 @@ main (int argc, char **argv)
 				percent = 100 * (((double) dskused) / ((double) dsktotal));
 				result = max_state (result, check_swap (percent, dskfree));
 				if (verbose)
-					asprintf (&status, "%s [%lu (%d%%)]", status, dskfree, 100 - percent);
+					asprintf (&status, "%s [%llu (%d%%)]", status, dskfree, 100 - percent);
 			}
 		}
 #  ifdef _AIX
@@ -221,7 +221,7 @@ main (int argc, char **argv)
 
 	percent_used = 100 * ((double) used_swap) / ((double) total_swap);
 	result = max_state (result, check_swap (percent_used, free_swap));
-	asprintf (&status, _(" %d%% free (%lu MB out of %lu MB)%s"),
+	asprintf (&status, _(" %d%% free (%llu MB out of %llu MB)%s"),
 						(100 - percent_used), free_swap, total_swap, status);
 
 	asprintf (&perf, "%s", perfdata ("swap", (long) free_swap, "MB",
@@ -289,7 +289,7 @@ process_arguments (int argc, char **argv)
 			}
 			else if (strstr (optarg, ",") &&
 							 strstr (optarg, "%") &&
-							 sscanf (optarg, "%lu,%d%%", &warn_size, &warn_percent) == 2) {
+							 sscanf (optarg, "%llu,%d%%", &warn_size, &warn_percent) == 2) {
 				break;
 			}
 			else if (strstr (optarg, "%") &&
@@ -306,7 +306,7 @@ process_arguments (int argc, char **argv)
 			}
 			else if (strstr (optarg, ",") &&
 							 strstr (optarg, "%") &&
-							 sscanf (optarg, "%lu,%d%%", &crit_size, &crit_percent) == 2) {
+							 sscanf (optarg, "%llu,%d%%", &crit_size, &crit_percent) == 2) {
 				break;
 			}
 			else if (strstr (optarg, "%") &&
-- 
cgit v0.10-9-g596f

