diff options
-rw-r--r-- | plugins/check_swap.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/plugins/check_swap.c b/plugins/check_swap.c index bb854beb..1c2e4207 100644 --- a/plugins/check_swap.c +++ b/plugins/check_swap.c | |||
@@ -1,30 +1,30 @@ | |||
1 | /***************************************************************************** | 1 | /***************************************************************************** |
2 | * | 2 | * |
3 | * Monitoring check_swap plugin | 3 | * Monitoring check_swap plugin |
4 | * | 4 | * |
5 | * License: GPL | 5 | * License: GPL |
6 | * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) | 6 | * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) |
7 | * Copyright (c) 2000-2007 Monitoring Plugins Development Team | 7 | * Copyright (c) 2000-2007 Monitoring Plugins Development Team |
8 | * | 8 | * |
9 | * Description: | 9 | * Description: |
10 | * | 10 | * |
11 | * This file contains the check_swap plugin | 11 | * This file contains the check_swap plugin |
12 | * | 12 | * |
13 | * | 13 | * |
14 | * This program is free software: you can redistribute it and/or modify | 14 | * This program is free software: you can redistribute it and/or modify |
15 | * it under the terms of the GNU General Public License as published by | 15 | * it under the terms of the GNU General Public License as published by |
16 | * the Free Software Foundation, either version 3 of the License, or | 16 | * the Free Software Foundation, either version 3 of the License, or |
17 | * (at your option) any later version. | 17 | * (at your option) any later version. |
18 | * | 18 | * |
19 | * This program is distributed in the hope that it will be useful, | 19 | * This program is distributed in the hope that it will be useful, |
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
22 | * GNU General Public License for more details. | 22 | * GNU General Public License for more details. |
23 | * | 23 | * |
24 | * You should have received a copy of the GNU General Public License | 24 | * You should have received a copy of the GNU General Public License |
25 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 25 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
26 | * | 26 | * |
27 | * | 27 | * |
28 | *****************************************************************************/ | 28 | *****************************************************************************/ |
29 | 29 | ||
30 | const char *progname = "check_swap"; | 30 | const char *progname = "check_swap"; |
@@ -150,7 +150,7 @@ main (int argc, char **argv) | |||
150 | * The following sscanf call looks for lines looking like: "SwapTotal: 123" and "SwapFree: 123" | 150 | * The following sscanf call looks for lines looking like: "SwapTotal: 123" and "SwapFree: 123" |
151 | * This format exists at least on Debian Linux with a 5.* kernel | 151 | * This format exists at least on Debian Linux with a 5.* kernel |
152 | */ | 152 | */ |
153 | else if (sscanf (input_buffer, "%*[S]%*[w]%*[a]%*[p]%[TotalFreCchd]%*[:] %f %*[k]%*[B]", str, &tmp_KB)) { | 153 | else if (sscanf (input_buffer, "%*[S]%*[w]%*[a]%*[p]%[TotalFreCchd]%*[:] %lu %*[k]%*[B]", str, &tmp_KB)) { |
154 | if (verbose >= 3) { | 154 | if (verbose >= 3) { |
155 | printf("Got %s with %lu\n", str, tmp_KB); | 155 | printf("Got %s with %lu\n", str, tmp_KB); |
156 | } | 156 | } |
@@ -410,7 +410,6 @@ check_swap(float free_swap_mb, float total_swap_mb) | |||
410 | uint64_t usage_percentage = ((total_swap_mb - free_swap_mb) / total_swap_mb) * 100; | 410 | uint64_t usage_percentage = ((total_swap_mb - free_swap_mb) / total_swap_mb) * 100; |
411 | 411 | ||
412 | if (crit.is_percentage && | 412 | if (crit.is_percentage && |
413 | usage_percentage >= 0 && | ||
414 | crit.value != 0 && | 413 | crit.value != 0 && |
415 | usage_percentage >= (100 - crit.value)) | 414 | usage_percentage >= (100 - crit.value)) |
416 | { | 415 | { |
@@ -418,7 +417,6 @@ check_swap(float free_swap_mb, float total_swap_mb) | |||
418 | } | 417 | } |
419 | 418 | ||
420 | if (warn.is_percentage && | 419 | if (warn.is_percentage && |
421 | usage_percentage >= 0 && | ||
422 | warn.value != 0 && | 420 | warn.value != 0 && |
423 | usage_percentage >= (100 - warn.value)) | 421 | usage_percentage >= (100 - warn.value)) |
424 | { | 422 | { |
@@ -475,10 +473,9 @@ process_arguments (int argc, char **argv) | |||
475 | if (is_uint64(optarg, &warn.value)) { | 473 | if (is_uint64(optarg, &warn.value)) { |
476 | if (warn.value > 100) { | 474 | if (warn.value > 100) { |
477 | usage4 (_("Warning threshold percentage must be <= 100!")); | 475 | usage4 (_("Warning threshold percentage must be <= 100!")); |
478 | } else { | ||
479 | break; | ||
480 | } | 476 | } |
481 | } | 477 | } |
478 | break; | ||
482 | } else { | 479 | } else { |
483 | /* It's Bytes */ | 480 | /* It's Bytes */ |
484 | warn.is_percentage = 0; | 481 | warn.is_percentage = 0; |
@@ -506,10 +503,9 @@ process_arguments (int argc, char **argv) | |||
506 | if (is_uint64(optarg, &crit.value)) { | 503 | if (is_uint64(optarg, &crit.value)) { |
507 | if (crit.value> 100) { | 504 | if (crit.value> 100) { |
508 | usage4 (_("Critical threshold percentage must be <= 100!")); | 505 | usage4 (_("Critical threshold percentage must be <= 100!")); |
509 | } else { | ||
510 | break; | ||
511 | } | 506 | } |
512 | } | 507 | } |
508 | break; | ||
513 | } else { | 509 | } else { |
514 | /* It's Bytes */ | 510 | /* It's Bytes */ |
515 | crit.is_percentage = 0; | 511 | crit.is_percentage = 0; |
@@ -527,6 +523,7 @@ process_arguments (int argc, char **argv) | |||
527 | if ((no_swap_state = mp_translate_state(optarg)) == ERROR) { | 523 | if ((no_swap_state = mp_translate_state(optarg)) == ERROR) { |
528 | usage4 (_("no-swap result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); | 524 | usage4 (_("no-swap result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); |
529 | } | 525 | } |
526 | break; | ||
530 | case 'v': /* verbose */ | 527 | case 'v': /* verbose */ |
531 | verbose++; | 528 | verbose++; |
532 | break; | 529 | break; |