From c862f705f393c89c78d63a10a66b5abe1d2d432e Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Tue, 21 May 2024 13:59:45 +0200 Subject: Add more documentation to the help page of check_snmp regarding authentication and privacy options --- plugins/check_snmp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 295aa9b5..898b6ab4 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -1253,10 +1253,12 @@ print_help (void) printf (" %s\n", _("SNMPv3 context")); printf (" %s\n", "-L, --seclevel=[noAuthNoPriv|authNoPriv|authPriv]"); printf (" %s\n", _("SNMPv3 securityLevel")); - printf (" %s\n", "-a, --authproto=[MD5|SHA]"); - printf (" %s\n", _("SNMPv3 auth proto")); - printf (" %s\n", "-x, --privproto=[DES|AES]"); - printf (" %s\n", _("SNMPv3 priv proto (default DES)")); + printf (" %s\n", "-a, --authproto=AUTHENTICATION_PROTOCOL"); + printf (" %s\n", _("SNMPv3 authentication protocol (default MD5), available options depend on the specific version of the net-snmp tools")); + printf (" %s\n", _("if < 5.8 SHA (1) and MD5 should be available, if >= 5.8 additionaly SHA-224, SHA-256, SHA-384 and SHA-512")); + printf (" %s\n", "-x, --privproto=PRIVACY_PROTOCOL"); + printf (" %s\n", _("SNMPv3 privacy protocol (default DES), available options depend on the specific version of the net-snmp tools")); + printf (" %s\n", _("if < 5.8 DES and AES should be available, if >= 5.8 additionaly AES-192 and AES-256")); /* Authentication Tokens*/ printf (" %s\n", "-C, --community=STRING"); -- cgit v1.2.3-74-g34f1 From 26a979284d1e05447523ef5153a7bd373571b97e Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Tue, 21 May 2024 14:27:21 +0200 Subject: Fix typos --- plugins/check_snmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 898b6ab4..937b3a5d 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -1255,10 +1255,10 @@ print_help (void) printf (" %s\n", _("SNMPv3 securityLevel")); printf (" %s\n", "-a, --authproto=AUTHENTICATION_PROTOCOL"); printf (" %s\n", _("SNMPv3 authentication protocol (default MD5), available options depend on the specific version of the net-snmp tools")); - printf (" %s\n", _("if < 5.8 SHA (1) and MD5 should be available, if >= 5.8 additionaly SHA-224, SHA-256, SHA-384 and SHA-512")); + printf (" %s\n", _("if < 5.8 SHA (1) and MD5 should be available, if >= 5.8 additionally SHA-224, SHA-256, SHA-384 and SHA-512")); printf (" %s\n", "-x, --privproto=PRIVACY_PROTOCOL"); printf (" %s\n", _("SNMPv3 privacy protocol (default DES), available options depend on the specific version of the net-snmp tools")); - printf (" %s\n", _("if < 5.8 DES and AES should be available, if >= 5.8 additionaly AES-192 and AES-256")); + printf (" %s\n", _("if < 5.8 DES and AES should be available, if >= 5.8 additionally AES-192 and AES-256")); /* Authentication Tokens*/ printf (" %s\n", "-C, --community=STRING"); -- cgit v1.2.3-74-g34f1 From 584cca3a96845d7720c34358340c98c31c765fc4 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle Date: Wed, 28 Aug 2024 19:19:16 +0200 Subject: check_mysql: remove unused global variables --- plugins/check_mysql.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 6a7daf11..a2a5e32d 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c @@ -59,7 +59,7 @@ bool ssl = false; char *opt_file = NULL; char *opt_group = NULL; unsigned int db_port = MYSQL_PORT; -int check_slave = 0, warn_sec = 0, crit_sec = 0; +int check_slave = 0; int ignore_auth = 0; int verbose = 0; -- cgit v1.2.3-74-g34f1 From 4f7ee057865e75d0eb95874b2404eb21bb5d508f Mon Sep 17 00:00:00 2001 From: Lorenz Kästle Date: Wed, 28 Aug 2024 19:20:31 +0200 Subject: check_mysql: Label some booleans correctly --- plugins/check_mysql.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index a2a5e32d..15ec04c0 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c @@ -59,8 +59,8 @@ bool ssl = false; char *opt_file = NULL; char *opt_group = NULL; unsigned int db_port = MYSQL_PORT; -int check_slave = 0; -int ignore_auth = 0; +bool check_slave = false; +bool ignore_auth = false; int verbose = 0; static double warning_time = 0; @@ -456,10 +456,10 @@ process_arguments (int argc, char **argv) db_port = atoi (optarg); break; case 'S': - check_slave = 1; /* check-slave */ + check_slave = true; /* check-slave */ break; case 'n': - ignore_auth = 1; /* ignore-auth */ + ignore_auth = true; /* ignore-auth */ break; case 'w': warning = optarg; -- cgit v1.2.3-74-g34f1 From 75d5c512072a019cdf6365bcda02d7eddc237e0c Mon Sep 17 00:00:00 2001 From: Lorenz Kästle Date: Thu, 29 Aug 2024 18:20:35 +0200 Subject: Remove experimental state from check_curl --- plugins/check_curl.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/check_curl.c b/plugins/check_curl.c index e9c15e64..e25d7a79 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c @@ -2190,8 +2190,6 @@ print_usage (void) printf ("%s\n", _("In the first form, make an HTTP request.")); printf ("%s\n\n", _("In the second form, connect to the server and check the TLS certificate.")); #endif - printf ("%s\n", _("WARNING: check_curl is experimental. Please use")); - printf ("%s\n\n", _("check_http if you need a stable version.")); } void -- cgit v1.2.3-74-g34f1 From 3ba660889a8e7a8fc992cfafc910a8f91eafb354 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:57:38 +0200 Subject: check_snmp: Declare most variables as static --- plugins/check_snmp.c | 156 +++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 937b3a5d..bd1940ee 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -86,82 +86,82 @@ const char *email = "devel@monitoring-plugins.org"; -int process_arguments (int, char **); -int validate_arguments (void); -char *thisarg (char *str); -char *nextarg (char *str); +static int process_arguments (int, char **); +static int validate_arguments (void); +static char *thisarg (char *str); +static char *nextarg (char *str); void print_usage (void); -void print_help (void); -char *multiply (char *str); +static void print_help (void); +static char *multiply (char *str); #include "regex.h" -char regex_expect[MAX_INPUT_BUFFER] = ""; -regex_t preg; -regmatch_t pmatch[10]; -char errbuf[MAX_INPUT_BUFFER] = ""; -char perfstr[MAX_INPUT_BUFFER] = "| "; -int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE; -int eflags = 0; -int errcode, excode; - -char *server_address = NULL; -char *community = NULL; -char **contextargs = NULL; -char *context = NULL; -char **authpriv = NULL; -char *proto = NULL; -char *seclevel = NULL; -char *secname = NULL; -char *authproto = NULL; -char *privproto = NULL; -char *authpasswd = NULL; -char *privpasswd = NULL; -int nulloid = STATE_UNKNOWN; -char **oids = NULL; -size_t oids_size = 0; -char *label; -char *units; -char *port; -char *snmpcmd; -char string_value[MAX_INPUT_BUFFER] = ""; -int invert_search=0; -char **labels = NULL; -char **unitv = NULL; -size_t nlabels = 0; -size_t labels_size = OID_COUNT_STEP; -size_t nunits = 0; -size_t unitv_size = OID_COUNT_STEP; -size_t numoids = 0; -int numauthpriv = 0; -int numcontext = 0; -int verbose = 0; -bool usesnmpgetnext = false; -char *warning_thresholds = NULL; -char *critical_thresholds = NULL; -thresholds **thlds; -size_t thlds_size = OID_COUNT_STEP; -double *response_value; -size_t response_size = OID_COUNT_STEP; -int retries = 0; -int *eval_method; -size_t eval_size = OID_COUNT_STEP; -char *delimiter; -char *output_delim; -char *miblist = NULL; -bool needmibs = false; -int calculate_rate = 0; -double offset = 0.0; -int rate_multiplier = 1; -state_data *previous_state; -double *previous_value; -size_t previous_size = OID_COUNT_STEP; -int perf_labels = 1; -char* ip_version = ""; -double multiplier = 1.0; -char *fmtstr = ""; -bool fmtstr_set = false; -char buffer[DEFAULT_BUFFER_SIZE]; -bool ignore_mib_parsing_errors = false; +static char regex_expect[MAX_INPUT_BUFFER] = ""; +static regex_t preg; +static regmatch_t pmatch[10]; +static char errbuf[MAX_INPUT_BUFFER] = ""; +static char perfstr[MAX_INPUT_BUFFER] = "| "; +static int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE; +static int eflags = 0; +static int errcode, excode; + +static char *server_address = NULL; +static char *community = NULL; +static char **contextargs = NULL; +static char *context = NULL; +static char **authpriv = NULL; +static char *proto = NULL; +static char *seclevel = NULL; +static char *secname = NULL; +static char *authproto = NULL; +static char *privproto = NULL; +static char *authpasswd = NULL; +static char *privpasswd = NULL; +static int nulloid = STATE_UNKNOWN; +static char **oids = NULL; +static size_t oids_size = 0; +static char *label; +static char *units; +static char *port; +static char *snmpcmd; +static char string_value[MAX_INPUT_BUFFER] = ""; +static int invert_search=0; +static char **labels = NULL; +static char **unitv = NULL; +static size_t nlabels = 0; +static size_t labels_size = OID_COUNT_STEP; +static size_t nunits = 0; +static size_t unitv_size = OID_COUNT_STEP; +static size_t numoids = 0; +static int numauthpriv = 0; +static int numcontext = 0; +static int verbose = 0; +static bool usesnmpgetnext = false; +static char *warning_thresholds = NULL; +static char *critical_thresholds = NULL; +static thresholds **thlds; +static size_t thlds_size = OID_COUNT_STEP; +static double *response_value; +static size_t response_size = OID_COUNT_STEP; +static int retries = 0; +static int *eval_method; +static size_t eval_size = OID_COUNT_STEP; +static char *delimiter; +static char *output_delim; +static char *miblist = NULL; +static bool needmibs = false; +static int calculate_rate = 0; +static double offset = 0.0; +static int rate_multiplier = 1; +static state_data *previous_state; +static double *previous_value; +static size_t previous_size = OID_COUNT_STEP; +static int perf_labels = 1; +static char* ip_version = ""; +static double multiplier = 1.0; +static char *fmtstr = ""; +static bool fmtstr_set = false; +static char buffer[DEFAULT_BUFFER_SIZE]; +static bool ignore_mib_parsing_errors = false; static char *fix_snmp_range(char *th) { @@ -1030,7 +1030,7 @@ selected. -int +static int validate_arguments () { /* check whether to load locally installed MIBS (CPU/disk intensive) */ @@ -1139,7 +1139,7 @@ validate_arguments () /* trim leading whitespace if there is a leading quote, make sure it balances */ -char * +static char * thisarg (char *str) { str += strspn (str, " \t\r\n"); /* trim any leading whitespace */ @@ -1156,7 +1156,7 @@ thisarg (char *str) set the trailing quote to '\x0' if the string continues, advance beyond the comma */ -char * +static char * nextarg (char *str) { if (str[0] == '\'') { @@ -1188,7 +1188,7 @@ nextarg (char *str) /* multiply result (values 0 < n < 1 work as divider) */ -char * +static char * multiply (char *str) { char *endptr; @@ -1225,7 +1225,7 @@ multiply (char *str) } -void +static void print_help (void) { print_revision (progname, NP_VERSION); -- cgit v1.2.3-74-g34f1 From b1e96a3bf30d148c33de8715ed30a3df4a829ecd Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:58:42 +0200 Subject: check_snmp: Remove unused PP-macros --- plugins/check_snmp.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index bd1940ee..90a04027 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -55,8 +55,6 @@ const char *email = "devel@monitoring-plugins.org"; #define CRIT_STRING 2 #define CRIT_REGEX 4 #define WARN_PRESENT 8 -#define WARN_STRING 16 -#define WARN_REGEX 32 #define OID_COUNT_STEP 8 -- cgit v1.2.3-74-g34f1 From 7ca72ecace9f74bbd121e6cb604722647cf90701 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 27 Sep 2024 13:51:21 +0200 Subject: check_disk: Declare global variables static Variables only used in that specific translation unit should be static to actually communicate that fact. Also allows the compiler to detect unused (global) variables. --- plugins/check_disk.c | 74 ++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 24de2d45..8bfc69b1 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -119,44 +119,44 @@ enum #pragma alloca #endif -int process_arguments (int, char **); -void print_path (const char *mypath); -void set_all_thresholds (struct parameter_list *path); -int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, char *); -void print_help (void); +static int process_arguments (int, char **); +static void print_path (const char *mypath); +static void set_all_thresholds (struct parameter_list *path); +static int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, char *); +static void print_help (void); void print_usage (void); -double calculate_percent(uintmax_t, uintmax_t); -bool stat_path (struct parameter_list *p); -void get_stats (struct parameter_list *p, struct fs_usage *fsp); -void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); - -char *exclude_device; -char *units; -uintmax_t mult = 1024 * 1024; -int verbose = 0; -bool erronly = false; -bool display_mntp = false; -bool exact_match = false; -bool ignore_missing = false; -bool freespace_ignore_reserved = false; -bool display_inodes_perfdata = false; -char *warn_freespace_units = NULL; -char *crit_freespace_units = NULL; -char *warn_freespace_percent = NULL; -char *crit_freespace_percent = NULL; -char *warn_usedspace_units = NULL; -char *crit_usedspace_units = NULL; -char *warn_usedspace_percent = NULL; -char *crit_usedspace_percent = NULL; -char *warn_usedinodes_percent = NULL; -char *crit_usedinodes_percent = NULL; -char *warn_freeinodes_percent = NULL; -char *crit_freeinodes_percent = NULL; -bool path_selected = false; -bool path_ignored = false; -char *group = NULL; -struct stat *stat_buf; -struct name_list *seen = NULL; +static double calculate_percent(uintmax_t, uintmax_t); +static bool stat_path (struct parameter_list *p); +static void get_stats (struct parameter_list *p, struct fs_usage *fsp); +static void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); + +static char *exclude_device; +static char *units; +static uintmax_t mult = 1024 * 1024; +static int verbose = 0; +static bool erronly = false; +static bool display_mntp = false; +static bool exact_match = false; +static bool ignore_missing = false; +static bool freespace_ignore_reserved = false; +static bool display_inodes_perfdata = false; +static char *warn_freespace_units = NULL; +static char *crit_freespace_units = NULL; +static char *warn_freespace_percent = NULL; +static char *crit_freespace_percent = NULL; +static char *warn_usedspace_units = NULL; +static char *crit_usedspace_units = NULL; +static char *warn_usedspace_percent = NULL; +static char *crit_usedspace_percent = NULL; +static char *warn_usedinodes_percent = NULL; +static char *crit_usedinodes_percent = NULL; +static char *warn_freeinodes_percent = NULL; +static char *crit_freeinodes_percent = NULL; +static bool path_selected = false; +static bool path_ignored = false; +static char *group = NULL; +static struct stat *stat_buf; +static struct name_list *seen = NULL; int -- cgit v1.2.3-74-g34f1 From fb5175aed64bdeb1b5f2725d185ba42576067dda Mon Sep 17 00:00:00 2001 From: Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 27 Sep 2024 13:53:24 +0200 Subject: check_disk: remove unused variables and functions --- plugins/check_disk.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 8bfc69b1..b3dd301c 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -120,9 +120,7 @@ enum #endif static int process_arguments (int, char **); -static void print_path (const char *mypath); static void set_all_thresholds (struct parameter_list *path); -static int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, char *); static void print_help (void); void print_usage (void); static double calculate_percent(uintmax_t, uintmax_t); @@ -130,7 +128,6 @@ static bool stat_path (struct parameter_list *p); static void get_stats (struct parameter_list *p, struct fs_usage *fsp); static void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); -static char *exclude_device; static char *units; static uintmax_t mult = 1024 * 1024; static int verbose = 0; @@ -899,18 +896,6 @@ process_arguments (int argc, char **argv) return true; } - - -void -print_path (const char *mypath) -{ - if (mypath == NULL) - printf ("\n"); - else - printf (_(" for %s\n"), mypath); -} - - void set_all_thresholds (struct parameter_list *path) { -- cgit v1.2.3-74-g34f1 From d7579e42495e2ad83a48d1cea258c6b708aea603 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Wed, 2 Oct 2024 11:42:22 +0200 Subject: add new github test workflow for debian:testing and fedora:rawhide this workflow runs scheduled once a week, so it does not prevent PRs from being merged but still allows us to notice if anything will go wrong with the next release. Remove rawhide test from the mandatory tests like we did with debian testing already. --- .github/workflows/test-next.yml | 77 +++++++++++++++++++++++++++++++++++++++++ .github/workflows/test.yml | 1 - 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test-next.yml diff --git a/.github/workflows/test-next.yml b/.github/workflows/test-next.yml new file mode 100644 index 00000000..083bc1e4 --- /dev/null +++ b/.github/workflows/test-next.yml @@ -0,0 +1,77 @@ +--- +name: Tests Debian:Testing and Fedora:Rawhide + +on: + push: + branches-ignore: + - '*' + schedule: + # Run every week on Monday at 9:00 AM (UTC) + - cron: '0 9 * * 1' + +jobs: + full-test: + name: Running unit and integrationt tests + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: + - 'debian:testing' + include: + - distro: 'debian:testing' + prepare: .github/prepare_debian.sh + steps: + - name: Git clone repository + uses: actions/checkout@v4 + - name: Run the tests on ${{ matrix.distro }} + run: | + docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol + docker run \ + -e NPTEST_ACCEPTDEFAULT=1 \ + -e NPTEST_CACHE="/src/.github/NPTest.cache" \ + -w /src -v ${PWD}:/src \ + --tmpfs /media/ramdisk1 \ + -v /var/run/utmp:/var/run/utmp \ + --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ + ${{ matrix.distro }} \ + /bin/sh -c '${{ matrix.prepare }} && \ + tools/setup && \ + ./configure --enable-libtap --with-ipv6=no && \ + make && \ + make test && \ + make dist && \ + tar zxf monitoring-plugins-*.tar.gz && \ + cd monitoring-plugins-*/ && \ + ./configure && \ + make' + docker container prune -f + docker volume prune -f + + build-test: + name: Running rpm build test on ${{ matrix.distro }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} + steps: + - name: Git clone repository + uses: actions/checkout@v4 + - name: Run the tests on ${{ matrix.distro }} + run: | + docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol + docker run \ + --privileged=true \ + -e NPTEST_ACCEPTDEFAULT=1 \ + -e NPTEST_CACHE="/src/.github/NPTest.cache" \ + -w /src -v ${PWD}:/src \ + --tmpfs /media/ramdisk1 \ + -v /var/run/utmp:/var/run/utmp \ + --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ + ${{ matrix.distro }} \ + /bin/sh -c '${{ matrix.build }} && \ + ls -la' + docker container prune -f + docker volume prune -f diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 33220d6d..77ca6585 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -54,7 +54,6 @@ jobs: matrix: include: - {"distro": "fedora:latest", "build": ".github/mock.sh"} - - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} - {"distro": "rockylinux:8", "build": ".github/mock.sh"} - {"distro": "almalinux:9", "build": ".github/mock.sh"} # - {"distro": "oraclelinux:9", "build": ".github/mock.sh"} -- cgit v1.2.3-74-g34f1 From 2558e488f35334d75f662cb94dc2122f68c7740a Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Wed, 2 Oct 2024 20:59:31 +0200 Subject: add manual workflow trigger --- .github/workflows/test-next.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-next.yml b/.github/workflows/test-next.yml index 083bc1e4..81240759 100644 --- a/.github/workflows/test-next.yml +++ b/.github/workflows/test-next.yml @@ -2,6 +2,7 @@ name: Tests Debian:Testing and Fedora:Rawhide on: + workflow_dispatch: {} push: branches-ignore: - '*' -- cgit v1.2.3-74-g34f1