diff options
author | Kristian Schuster <116557017+KriSchu@users.noreply.github.com> | 2023-02-19 22:49:18 (GMT) |
---|---|---|
committer | Kristian Schuster <116557017+KriSchu@users.noreply.github.com> | 2023-02-19 22:49:18 (GMT) |
commit | a0d42777217296c0a7bdb1e1be8d8f6de1b24dd7 (patch) | |
tree | 8effe94c57b2f9796ba36090b07551baa8f1e1cb /plugins/check_apt.c | |
parent | ca3d59cd6918c9e2739e783b721d4c1122640fd3 (diff) | |
parent | c07206f2ccc2356aa74bc6813a94c2190017d44e (diff) | |
download | monitoring-plugins-a0d42777217296c0a7bdb1e1be8d8f6de1b24dd7.tar.gz |
Merge remote-tracking branch 'origin/master' into feature_check_disk_add_ignore_missing_option
Diffstat (limited to 'plugins/check_apt.c')
-rw-r--r-- | plugins/check_apt.c | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/plugins/check_apt.c b/plugins/check_apt.c index d7be575..fa982ae 100644 --- a/plugins/check_apt.c +++ b/plugins/check_apt.c | |||
@@ -1,32 +1,32 @@ | |||
1 | /***************************************************************************** | 1 | /***************************************************************************** |
2 | * | 2 | * |
3 | * Monitoring check_apt plugin | 3 | * Monitoring check_apt plugin |
4 | * | 4 | * |
5 | * License: GPL | 5 | * License: GPL |
6 | * Copyright (c) 2006-2008 Monitoring Plugins Development Team | 6 | * Copyright (c) 2006-2008 Monitoring Plugins Development Team |
7 | * | 7 | * |
8 | * Original author: Sean Finney | 8 | * Original author: Sean Finney |
9 | * | 9 | * |
10 | * Description: | 10 | * Description: |
11 | * | 11 | * |
12 | * This file contains the check_apt plugin | 12 | * This file contains the check_apt plugin |
13 | * | 13 | * |
14 | * Check for available updates in apt package management systems | 14 | * Check for available updates in apt package management systems |
15 | * | 15 | * |
16 | * | 16 | * |
17 | * This program is free software: you can redistribute it and/or modify | 17 | * This program is free software: you can redistribute it and/or modify |
18 | * it under the terms of the GNU General Public License as published by | 18 | * it under the terms of the GNU General Public License as published by |
19 | * the Free Software Foundation, either version 3 of the License, or | 19 | * the Free Software Foundation, either version 3 of the License, or |
20 | * (at your option) any later version. | 20 | * (at your option) any later version. |
21 | * | 21 | * |
22 | * This program is distributed in the hope that it will be useful, | 22 | * This program is distributed in the hope that it will be useful, |
23 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 23 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
24 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 24 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
25 | * GNU General Public License for more details. | 25 | * GNU General Public License for more details. |
26 | * | 26 | * |
27 | * You should have received a copy of the GNU General Public License | 27 | * You should have received a copy of the GNU General Public License |
28 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 28 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
29 | * | 29 | * |
30 | *****************************************************************************/ | 30 | *****************************************************************************/ |
31 | 31 | ||
32 | const char *progname = "check_apt"; | 32 | const char *progname = "check_apt"; |
@@ -76,9 +76,9 @@ int cmpstringp(const void *p1, const void *p2); | |||
76 | 76 | ||
77 | /* configuration variables */ | 77 | /* configuration variables */ |
78 | static int verbose = 0; /* -v */ | 78 | static int verbose = 0; /* -v */ |
79 | static int list = 0; /* list packages available for upgrade */ | 79 | static bool list = false; /* list packages available for upgrade */ |
80 | static int do_update = 0; /* whether to call apt-get update */ | 80 | static bool do_update = false; /* whether to call apt-get update */ |
81 | static int only_critical = 0; /* whether to warn about non-critical updates */ | 81 | static bool only_critical = false; /* whether to warn about non-critical updates */ |
82 | static upgrade_type upgrade = UPGRADE; /* which type of upgrade to do */ | 82 | static upgrade_type upgrade = UPGRADE; /* which type of upgrade to do */ |
83 | static char *upgrade_opts = NULL; /* options to override defaults for upgrade */ | 83 | static char *upgrade_opts = NULL; /* options to override defaults for upgrade */ |
84 | static char *update_opts = NULL; /* options to override defaults for update */ | 84 | static char *update_opts = NULL; /* options to override defaults for update */ |
@@ -119,7 +119,7 @@ int main (int argc, char **argv) { | |||
119 | 119 | ||
120 | if(sec_count > 0){ | 120 | if(sec_count > 0){ |
121 | result = max_state(result, STATE_CRITICAL); | 121 | result = max_state(result, STATE_CRITICAL); |
122 | } else if(packages_available >= packages_warning && only_critical == 0){ | 122 | } else if(packages_available >= packages_warning && only_critical == false){ |
123 | result = max_state(result, STATE_WARNING); | 123 | result = max_state(result, STATE_WARNING); |
124 | } else if(result > STATE_UNKNOWN){ | 124 | } else if(result > STATE_UNKNOWN){ |
125 | result = STATE_UNKNOWN; | 125 | result = STATE_UNKNOWN; |
@@ -144,7 +144,7 @@ int main (int argc, char **argv) { | |||
144 | 144 | ||
145 | for(i = 0; i < sec_count; i++) | 145 | for(i = 0; i < sec_count; i++) |
146 | printf("%s (security)\n", secpackages_list[i]); | 146 | printf("%s (security)\n", secpackages_list[i]); |
147 | if (only_critical == 0) { | 147 | if (only_critical == false) { |
148 | for(i = 0; i < packages_available - sec_count; i++) | 148 | for(i = 0; i < packages_available - sec_count; i++) |
149 | printf("%s\n", packages_list[i]); | 149 | printf("%s\n", packages_list[i]); |
150 | } | 150 | } |
@@ -166,7 +166,7 @@ int process_arguments (int argc, char **argv) { | |||
166 | {"upgrade", optional_argument, 0, 'U'}, | 166 | {"upgrade", optional_argument, 0, 'U'}, |
167 | {"no-upgrade", no_argument, 0, 'n'}, | 167 | {"no-upgrade", no_argument, 0, 'n'}, |
168 | {"dist-upgrade", optional_argument, 0, 'd'}, | 168 | {"dist-upgrade", optional_argument, 0, 'd'}, |
169 | {"list", no_argument, 0, 'l'}, | 169 | {"list", no_argument, false, 'l'}, |
170 | {"include", required_argument, 0, 'i'}, | 170 | {"include", required_argument, 0, 'i'}, |
171 | {"exclude", required_argument, 0, 'e'}, | 171 | {"exclude", required_argument, 0, 'e'}, |
172 | {"critical", required_argument, 0, 'c'}, | 172 | {"critical", required_argument, 0, 'c'}, |
@@ -212,14 +212,14 @@ int process_arguments (int argc, char **argv) { | |||
212 | upgrade=NO_UPGRADE; | 212 | upgrade=NO_UPGRADE; |
213 | break; | 213 | break; |
214 | case 'u': | 214 | case 'u': |
215 | do_update=1; | 215 | do_update=true; |
216 | if(optarg!=NULL){ | 216 | if(optarg!=NULL){ |
217 | update_opts=strdup(optarg); | 217 | update_opts=strdup(optarg); |
218 | if(update_opts==NULL) die(STATE_UNKNOWN, "strdup failed"); | 218 | if(update_opts==NULL) die(STATE_UNKNOWN, "strdup failed"); |
219 | } | 219 | } |
220 | break; | 220 | break; |
221 | case 'l': | 221 | case 'l': |
222 | list=1; | 222 | list=true; |
223 | break; | 223 | break; |
224 | case 'i': | 224 | case 'i': |
225 | do_include=add_to_regexp(do_include, optarg); | 225 | do_include=add_to_regexp(do_include, optarg); |
@@ -231,7 +231,7 @@ int process_arguments (int argc, char **argv) { | |||
231 | do_critical=add_to_regexp(do_critical, optarg); | 231 | do_critical=add_to_regexp(do_critical, optarg); |
232 | break; | 232 | break; |
233 | case 'o': | 233 | case 'o': |
234 | only_critical=1; | 234 | only_critical=true; |
235 | break; | 235 | break; |
236 | case INPUT_FILE_OPT: | 236 | case INPUT_FILE_OPT: |
237 | input_filename = optarg; | 237 | input_filename = optarg; |
@@ -269,7 +269,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkg | |||
269 | die(STATE_UNKNOWN, _("%s: Error compiling regexp: %s"), progname, rerrbuf); | 269 | die(STATE_UNKNOWN, _("%s: Error compiling regexp: %s"), progname, rerrbuf); |
270 | } | 270 | } |
271 | } | 271 | } |
272 | 272 | ||
273 | if(do_exclude!=NULL){ | 273 | if(do_exclude!=NULL){ |
274 | regres=regcomp(&ereg, do_exclude, REG_EXTENDED); | 274 | regres=regcomp(&ereg, do_exclude, REG_EXTENDED); |
275 | if(regres!=0) { | 275 | if(regres!=0) { |
@@ -278,7 +278,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkg | |||
278 | progname, rerrbuf); | 278 | progname, rerrbuf); |
279 | } | 279 | } |
280 | } | 280 | } |
281 | 281 | ||
282 | const char *crit_ptr = (do_critical != NULL) ? do_critical : SECURITY_RE; | 282 | const char *crit_ptr = (do_critical != NULL) ? do_critical : SECURITY_RE; |
283 | regres=regcomp(&sreg, crit_ptr, REG_EXTENDED); | 283 | regres=regcomp(&sreg, crit_ptr, REG_EXTENDED); |
284 | if(regres!=0) { | 284 | if(regres!=0) { |
@@ -295,7 +295,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkg | |||
295 | /* run the upgrade */ | 295 | /* run the upgrade */ |
296 | result = np_runcmd(cmdline, &chld_out, &chld_err, 0); | 296 | result = np_runcmd(cmdline, &chld_out, &chld_err, 0); |
297 | } | 297 | } |
298 | 298 | ||
299 | /* apt-get upgrade only changes exit status if there is an | 299 | /* apt-get upgrade only changes exit status if there is an |
300 | * internal error when run in dry-run mode. therefore we will | 300 | * internal error when run in dry-run mode. therefore we will |
301 | * treat such an error as UNKNOWN */ | 301 | * treat such an error as UNKNOWN */ |
@@ -371,7 +371,7 @@ int run_update(void){ | |||
371 | struct output chld_out, chld_err; | 371 | struct output chld_out, chld_err; |
372 | char *cmdline; | 372 | char *cmdline; |
373 | 373 | ||
374 | /* run the upgrade */ | 374 | /* run the update */ |
375 | cmdline = construct_cmdline(NO_UPGRADE, update_opts); | 375 | cmdline = construct_cmdline(NO_UPGRADE, update_opts); |
376 | result = np_runcmd(cmdline, &chld_out, &chld_err, 0); | 376 | result = np_runcmd(cmdline, &chld_out, &chld_err, 0); |
377 | /* apt-get update changes exit status if it can't fetch packages. | 377 | /* apt-get update changes exit status if it can't fetch packages. |
@@ -501,16 +501,6 @@ print_help (void) | |||
501 | 501 | ||
502 | printf(UT_PLUG_TIMEOUT, timeout_interval); | 502 | printf(UT_PLUG_TIMEOUT, timeout_interval); |
503 | 503 | ||
504 | printf (" %s\n", "-U, --upgrade=OPTS"); | ||
505 | printf (" %s\n", _("[Default] Perform an upgrade. If an optional OPTS argument is provided,")); | ||
506 | printf (" %s\n", _("apt-get will be run with these command line options instead of the")); | ||
507 | printf (" %s", _("default ")); | ||
508 | printf ("(%s).\n", UPGRADE_DEFAULT_OPTS); | ||
509 | printf (" %s\n", _("Note that you may be required to have root privileges if you do not use")); | ||
510 | printf (" %s\n", _("the default options.")); | ||
511 | printf (" %s\n", "-d, --dist-upgrade=OPTS"); | ||
512 | printf (" %s\n", _("Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS")); | ||
513 | printf (" %s\n", _("can be provided to override the default options.")); | ||
514 | printf (" %s\n", "-n, --no-upgrade"); | 504 | printf (" %s\n", "-n, --no-upgrade"); |
515 | printf (" %s\n", _("Do not run the upgrade. Probably not useful (without -u at least).")); | 505 | printf (" %s\n", _("Do not run the upgrade. Probably not useful (without -u at least).")); |
516 | printf (" %s\n", "-l, --list"); | 506 | printf (" %s\n", "-l, --list"); |
@@ -530,7 +520,7 @@ print_help (void) | |||
530 | printf (" %s\n", _("this REGEXP, the plugin will return CRITICAL status. Can be specified")); | 520 | printf (" %s\n", _("this REGEXP, the plugin will return CRITICAL status. Can be specified")); |
531 | printf (" %s\n", _("multiple times like above. Default is a regexp matching security")); | 521 | printf (" %s\n", _("multiple times like above. Default is a regexp matching security")); |
532 | printf (" %s\n", _("upgrades for Debian and Ubuntu:")); | 522 | printf (" %s\n", _("upgrades for Debian and Ubuntu:")); |
533 | printf (" \t\%s\n", SECURITY_RE); | 523 | printf (" \t%s\n", SECURITY_RE); |
534 | printf (" %s\n", _("Note that the package must first match the include list before its")); | 524 | printf (" %s\n", _("Note that the package must first match the include list before its")); |
535 | printf (" %s\n", _("information is compared against the critical list.")); | 525 | printf (" %s\n", _("information is compared against the critical list.")); |
536 | printf (" %s\n", "-o, --only-critical"); | 526 | printf (" %s\n", "-o, --only-critical"); |
@@ -538,7 +528,7 @@ print_help (void) | |||
538 | printf (" %s\n", _("of upgrades will be printed, but any non-critical upgrades will not cause")); | 528 | printf (" %s\n", _("of upgrades will be printed, but any non-critical upgrades will not cause")); |
539 | printf (" %s\n", _("the plugin to return WARNING status.")); | 529 | printf (" %s\n", _("the plugin to return WARNING status.")); |
540 | printf (" %s\n", "-w, --packages-warning"); | 530 | printf (" %s\n", "-w, --packages-warning"); |
541 | printf (" %s\n", _("Minumum number of packages available for upgrade to return WARNING status.")); | 531 | printf (" %s\n", _("Minimum number of packages available for upgrade to return WARNING status.")); |
542 | printf (" %s\n\n", _("Default is 1 package.")); | 532 | printf (" %s\n\n", _("Default is 1 package.")); |
543 | 533 | ||
544 | printf ("%s\n\n", _("The following options require root privileges and should be used with care:")); | 534 | printf ("%s\n\n", _("The following options require root privileges and should be used with care:")); |
@@ -547,6 +537,16 @@ print_help (void) | |||
547 | printf (" %s\n", _("the default options. Note: you may also need to adjust the global")); | 537 | printf (" %s\n", _("the default options. Note: you may also need to adjust the global")); |
548 | printf (" %s\n", _("timeout (with -t) to prevent the plugin from timing out if apt-get")); | 538 | printf (" %s\n", _("timeout (with -t) to prevent the plugin from timing out if apt-get")); |
549 | printf (" %s\n", _("upgrade is expected to take longer than the default timeout.")); | 539 | printf (" %s\n", _("upgrade is expected to take longer than the default timeout.")); |
540 | printf (" %s\n", "-U, --upgrade=OPTS"); | ||
541 | printf (" %s\n", _("Perform an upgrade. If an optional OPTS argument is provided,")); | ||
542 | printf (" %s\n", _("apt-get will be run with these command line options instead of the")); | ||
543 | printf (" %s", _("default ")); | ||
544 | printf ("(%s).\n", UPGRADE_DEFAULT_OPTS); | ||
545 | printf (" %s\n", _("Note that you may be required to have root privileges if you do not use")); | ||
546 | printf (" %s\n", _("the default options, which will only run a simulation and NOT perform the upgrade")); | ||
547 | printf (" %s\n", "-d, --dist-upgrade=OPTS"); | ||
548 | printf (" %s\n", _("Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS")); | ||
549 | printf (" %s\n", _("can be provided to override the default options.")); | ||
550 | 550 | ||
551 | printf(UT_SUPPORT); | 551 | printf(UT_SUPPORT); |
552 | } | 552 | } |