diff options
-rw-r--r-- | plugins/check_swap.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/plugins/check_swap.c b/plugins/check_swap.c index b8f82db1..3bf7d432 100644 --- a/plugins/check_swap.c +++ b/plugins/check_swap.c | |||
@@ -55,6 +55,7 @@ main (int argc, char **argv) | |||
55 | long unsigned int dsktotal, dskused, dskfree; | 55 | long unsigned int dsktotal, dskused, dskfree; |
56 | int result = STATE_OK; | 56 | int result = STATE_OK; |
57 | char input_buffer[MAX_INPUT_BUFFER]; | 57 | char input_buffer[MAX_INPUT_BUFFER]; |
58 | char *perf; | ||
58 | #ifdef HAVE_PROC_MEMINFO | 59 | #ifdef HAVE_PROC_MEMINFO |
59 | FILE *fp; | 60 | FILE *fp; |
60 | #else | 61 | #else |
@@ -73,6 +74,7 @@ main (int argc, char **argv) | |||
73 | textdomain (PACKAGE); | 74 | textdomain (PACKAGE); |
74 | 75 | ||
75 | status = strdup(""); | 76 | status = strdup(""); |
77 | perf = strdup(""); | ||
76 | 78 | ||
77 | if (process_arguments (argc, argv) != OK) | 79 | if (process_arguments (argc, argv) != OK) |
78 | usage (_("Invalid command arguments supplied\n")); | 80 | usage (_("Invalid command arguments supplied\n")); |
@@ -222,7 +224,12 @@ main (int argc, char **argv) | |||
222 | asprintf (&status, _(" %d%% free (%lu MB out of %lu MB)%s"), | 224 | asprintf (&status, _(" %d%% free (%lu MB out of %lu MB)%s"), |
223 | (100 - percent_used), free_swap, total_swap, status); | 225 | (100 - percent_used), free_swap, total_swap, status); |
224 | 226 | ||
225 | die (result, "SWAP %s:%s\n", state_text (result), status); | 227 | asprintf (&perf, "%s", perfdata ("swap", free_swap, "MB", |
228 | TRUE, max (warn_size/1024, warn_percent/100.0*total_swap), | ||
229 | TRUE, max (crit_size/1024, crit_percent/100.0*total_swap), | ||
230 | TRUE, 0, | ||
231 | TRUE, total_swap)); | ||
232 | die (result, "SWAP %s:%s |%s\n", state_text (result), status, perf); | ||
226 | return STATE_UNKNOWN; | 233 | return STATE_UNKNOWN; |
227 | } | 234 | } |
228 | 235 | ||
@@ -329,12 +336,12 @@ process_arguments (int argc, char **argv) | |||
329 | c = optind; | 336 | c = optind; |
330 | if (c == argc) | 337 | if (c == argc) |
331 | return validate_arguments (); | 338 | return validate_arguments (); |
332 | if (warn_percent > 100 && is_intnonneg (argv[c])) | 339 | if (warn_percent == 0 && is_intnonneg (argv[c])) |
333 | warn_percent = atoi (argv[c++]); | 340 | warn_percent = atoi (argv[c++]); |
334 | 341 | ||
335 | if (c == argc) | 342 | if (c == argc) |
336 | return validate_arguments (); | 343 | return validate_arguments (); |
337 | if (crit_percent > 100 && is_intnonneg (argv[c])) | 344 | if (crit_percent == 0 && is_intnonneg (argv[c])) |
338 | crit_percent = atoi (argv[c++]); | 345 | crit_percent = atoi (argv[c++]); |
339 | 346 | ||
340 | if (c == argc) | 347 | if (c == argc) |
@@ -357,7 +364,7 @@ process_arguments (int argc, char **argv) | |||
357 | int | 364 | int |
358 | validate_arguments (void) | 365 | validate_arguments (void) |
359 | { | 366 | { |
360 | if (warn_percent > 100 && crit_percent > 100 && warn_size == 0 | 367 | if (warn_percent == 0 && crit_percent == 0 && warn_size == 0 |
361 | && crit_size == 0) { | 368 | && crit_size == 0) { |
362 | return ERROR; | 369 | return ERROR; |
363 | } | 370 | } |