diff options
-rw-r--r-- | .github/workflows/test-next.yml | 78 | ||||
-rw-r--r-- | .github/workflows/test.yml | 1 | ||||
-rw-r--r-- | plugins/check_curl.c | 2 | ||||
-rw-r--r-- | plugins/check_disk.c | 83 | ||||
-rw-r--r-- | plugins/check_mysql.c | 8 | ||||
-rw-r--r-- | plugins/check_snmp.c | 168 |
6 files changed, 200 insertions, 140 deletions
diff --git a/.github/workflows/test-next.yml b/.github/workflows/test-next.yml new file mode 100644 index 00000000..81240759 --- /dev/null +++ b/.github/workflows/test-next.yml | |||
@@ -0,0 +1,78 @@ | |||
1 | --- | ||
2 | name: Tests Debian:Testing and Fedora:Rawhide | ||
3 | |||
4 | on: | ||
5 | workflow_dispatch: {} | ||
6 | push: | ||
7 | branches-ignore: | ||
8 | - '*' | ||
9 | schedule: | ||
10 | # Run every week on Monday at 9:00 AM (UTC) | ||
11 | - cron: '0 9 * * 1' | ||
12 | |||
13 | jobs: | ||
14 | full-test: | ||
15 | name: Running unit and integrationt tests | ||
16 | runs-on: ubuntu-latest | ||
17 | strategy: | ||
18 | fail-fast: false | ||
19 | matrix: | ||
20 | distro: | ||
21 | - 'debian:testing' | ||
22 | include: | ||
23 | - distro: 'debian:testing' | ||
24 | prepare: .github/prepare_debian.sh | ||
25 | steps: | ||
26 | - name: Git clone repository | ||
27 | uses: actions/checkout@v4 | ||
28 | - name: Run the tests on ${{ matrix.distro }} | ||
29 | run: | | ||
30 | docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol | ||
31 | docker run \ | ||
32 | -e NPTEST_ACCEPTDEFAULT=1 \ | ||
33 | -e NPTEST_CACHE="/src/.github/NPTest.cache" \ | ||
34 | -w /src -v ${PWD}:/src \ | ||
35 | --tmpfs /media/ramdisk1 \ | ||
36 | -v /var/run/utmp:/var/run/utmp \ | ||
37 | --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ | ||
38 | ${{ matrix.distro }} \ | ||
39 | /bin/sh -c '${{ matrix.prepare }} && \ | ||
40 | tools/setup && \ | ||
41 | ./configure --enable-libtap --with-ipv6=no && \ | ||
42 | make && \ | ||
43 | make test && \ | ||
44 | make dist && \ | ||
45 | tar zxf monitoring-plugins-*.tar.gz && \ | ||
46 | cd monitoring-plugins-*/ && \ | ||
47 | ./configure && \ | ||
48 | make' | ||
49 | docker container prune -f | ||
50 | docker volume prune -f | ||
51 | |||
52 | build-test: | ||
53 | name: Running rpm build test on ${{ matrix.distro }} | ||
54 | runs-on: ubuntu-latest | ||
55 | strategy: | ||
56 | fail-fast: false | ||
57 | matrix: | ||
58 | include: | ||
59 | - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} | ||
60 | steps: | ||
61 | - name: Git clone repository | ||
62 | uses: actions/checkout@v4 | ||
63 | - name: Run the tests on ${{ matrix.distro }} | ||
64 | run: | | ||
65 | docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol | ||
66 | docker run \ | ||
67 | --privileged=true \ | ||
68 | -e NPTEST_ACCEPTDEFAULT=1 \ | ||
69 | -e NPTEST_CACHE="/src/.github/NPTest.cache" \ | ||
70 | -w /src -v ${PWD}:/src \ | ||
71 | --tmpfs /media/ramdisk1 \ | ||
72 | -v /var/run/utmp:/var/run/utmp \ | ||
73 | --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ | ||
74 | ${{ matrix.distro }} \ | ||
75 | /bin/sh -c '${{ matrix.build }} && \ | ||
76 | ls -la' | ||
77 | docker container prune -f | ||
78 | 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: | |||
54 | matrix: | 54 | matrix: |
55 | include: | 55 | include: |
56 | - {"distro": "fedora:latest", "build": ".github/mock.sh"} | 56 | - {"distro": "fedora:latest", "build": ".github/mock.sh"} |
57 | - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} | ||
58 | - {"distro": "rockylinux:8", "build": ".github/mock.sh"} | 57 | - {"distro": "rockylinux:8", "build": ".github/mock.sh"} |
59 | - {"distro": "almalinux:9", "build": ".github/mock.sh"} | 58 | - {"distro": "almalinux:9", "build": ".github/mock.sh"} |
60 | # - {"distro": "oraclelinux:9", "build": ".github/mock.sh"} | 59 | # - {"distro": "oraclelinux:9", "build": ".github/mock.sh"} |
diff --git a/plugins/check_curl.c b/plugins/check_curl.c index 214ba74f..7f45b5a7 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c | |||
@@ -2190,8 +2190,6 @@ print_usage (void) | |||
2190 | printf ("%s\n", _("In the first form, make an HTTP request.")); | 2190 | printf ("%s\n", _("In the first form, make an HTTP request.")); |
2191 | printf ("%s\n\n", _("In the second form, connect to the server and check the TLS certificate.")); | 2191 | printf ("%s\n\n", _("In the second form, connect to the server and check the TLS certificate.")); |
2192 | #endif | 2192 | #endif |
2193 | printf ("%s\n", _("WARNING: check_curl is experimental. Please use")); | ||
2194 | printf ("%s\n\n", _("check_http if you need a stable version.")); | ||
2195 | } | 2193 | } |
2196 | 2194 | ||
2197 | void | 2195 | void |
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 24de2d45..b3dd301c 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
@@ -119,44 +119,41 @@ enum | |||
119 | #pragma alloca | 119 | #pragma alloca |
120 | #endif | 120 | #endif |
121 | 121 | ||
122 | int process_arguments (int, char **); | 122 | static int process_arguments (int, char **); |
123 | void print_path (const char *mypath); | 123 | static void set_all_thresholds (struct parameter_list *path); |
124 | void set_all_thresholds (struct parameter_list *path); | 124 | static void print_help (void); |
125 | int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, char *); | ||
126 | void print_help (void); | ||
127 | void print_usage (void); | 125 | void print_usage (void); |
128 | double calculate_percent(uintmax_t, uintmax_t); | 126 | static double calculate_percent(uintmax_t, uintmax_t); |
129 | bool stat_path (struct parameter_list *p); | 127 | static bool stat_path (struct parameter_list *p); |
130 | void get_stats (struct parameter_list *p, struct fs_usage *fsp); | 128 | static void get_stats (struct parameter_list *p, struct fs_usage *fsp); |
131 | void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); | 129 | static void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); |
132 | 130 | ||
133 | char *exclude_device; | 131 | static char *units; |
134 | char *units; | 132 | static uintmax_t mult = 1024 * 1024; |
135 | uintmax_t mult = 1024 * 1024; | 133 | static int verbose = 0; |
136 | int verbose = 0; | 134 | static bool erronly = false; |
137 | bool erronly = false; | 135 | static bool display_mntp = false; |
138 | bool display_mntp = false; | 136 | static bool exact_match = false; |
139 | bool exact_match = false; | 137 | static bool ignore_missing = false; |
140 | bool ignore_missing = false; | 138 | static bool freespace_ignore_reserved = false; |
141 | bool freespace_ignore_reserved = false; | 139 | static bool display_inodes_perfdata = false; |
142 | bool display_inodes_perfdata = false; | 140 | static char *warn_freespace_units = NULL; |
143 | char *warn_freespace_units = NULL; | 141 | static char *crit_freespace_units = NULL; |
144 | char *crit_freespace_units = NULL; | 142 | static char *warn_freespace_percent = NULL; |
145 | char *warn_freespace_percent = NULL; | 143 | static char *crit_freespace_percent = NULL; |
146 | char *crit_freespace_percent = NULL; | 144 | static char *warn_usedspace_units = NULL; |
147 | char *warn_usedspace_units = NULL; | 145 | static char *crit_usedspace_units = NULL; |
148 | char *crit_usedspace_units = NULL; | 146 | static char *warn_usedspace_percent = NULL; |
149 | char *warn_usedspace_percent = NULL; | 147 | static char *crit_usedspace_percent = NULL; |
150 | char *crit_usedspace_percent = NULL; | 148 | static char *warn_usedinodes_percent = NULL; |
151 | char *warn_usedinodes_percent = NULL; | 149 | static char *crit_usedinodes_percent = NULL; |
152 | char *crit_usedinodes_percent = NULL; | 150 | static char *warn_freeinodes_percent = NULL; |
153 | char *warn_freeinodes_percent = NULL; | 151 | static char *crit_freeinodes_percent = NULL; |
154 | char *crit_freeinodes_percent = NULL; | 152 | static bool path_selected = false; |
155 | bool path_selected = false; | 153 | static bool path_ignored = false; |
156 | bool path_ignored = false; | 154 | static char *group = NULL; |
157 | char *group = NULL; | 155 | static struct stat *stat_buf; |
158 | struct stat *stat_buf; | 156 | static struct name_list *seen = NULL; |
159 | struct name_list *seen = NULL; | ||
160 | 157 | ||
161 | 158 | ||
162 | int | 159 | int |
@@ -899,18 +896,6 @@ process_arguments (int argc, char **argv) | |||
899 | return true; | 896 | return true; |
900 | } | 897 | } |
901 | 898 | ||
902 | |||
903 | |||
904 | void | ||
905 | print_path (const char *mypath) | ||
906 | { | ||
907 | if (mypath == NULL) | ||
908 | printf ("\n"); | ||
909 | else | ||
910 | printf (_(" for %s\n"), mypath); | ||
911 | } | ||
912 | |||
913 | |||
914 | void | 899 | void |
915 | set_all_thresholds (struct parameter_list *path) | 900 | set_all_thresholds (struct parameter_list *path) |
916 | { | 901 | { |
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 6a7daf11..15ec04c0 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c | |||
@@ -59,8 +59,8 @@ bool ssl = false; | |||
59 | char *opt_file = NULL; | 59 | char *opt_file = NULL; |
60 | char *opt_group = NULL; | 60 | char *opt_group = NULL; |
61 | unsigned int db_port = MYSQL_PORT; | 61 | unsigned int db_port = MYSQL_PORT; |
62 | int check_slave = 0, warn_sec = 0, crit_sec = 0; | 62 | bool check_slave = false; |
63 | int ignore_auth = 0; | 63 | bool ignore_auth = false; |
64 | int verbose = 0; | 64 | int verbose = 0; |
65 | 65 | ||
66 | static double warning_time = 0; | 66 | static double warning_time = 0; |
@@ -456,10 +456,10 @@ process_arguments (int argc, char **argv) | |||
456 | db_port = atoi (optarg); | 456 | db_port = atoi (optarg); |
457 | break; | 457 | break; |
458 | case 'S': | 458 | case 'S': |
459 | check_slave = 1; /* check-slave */ | 459 | check_slave = true; /* check-slave */ |
460 | break; | 460 | break; |
461 | case 'n': | 461 | case 'n': |
462 | ignore_auth = 1; /* ignore-auth */ | 462 | ignore_auth = true; /* ignore-auth */ |
463 | break; | 463 | break; |
464 | case 'w': | 464 | case 'w': |
465 | warning = optarg; | 465 | warning = optarg; |
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 295aa9b5..90a04027 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c | |||
@@ -55,8 +55,6 @@ const char *email = "devel@monitoring-plugins.org"; | |||
55 | #define CRIT_STRING 2 | 55 | #define CRIT_STRING 2 |
56 | #define CRIT_REGEX 4 | 56 | #define CRIT_REGEX 4 |
57 | #define WARN_PRESENT 8 | 57 | #define WARN_PRESENT 8 |
58 | #define WARN_STRING 16 | ||
59 | #define WARN_REGEX 32 | ||
60 | 58 | ||
61 | #define OID_COUNT_STEP 8 | 59 | #define OID_COUNT_STEP 8 |
62 | 60 | ||
@@ -86,82 +84,82 @@ const char *email = "devel@monitoring-plugins.org"; | |||
86 | 84 | ||
87 | 85 | ||
88 | 86 | ||
89 | int process_arguments (int, char **); | 87 | static int process_arguments (int, char **); |
90 | int validate_arguments (void); | 88 | static int validate_arguments (void); |
91 | char *thisarg (char *str); | 89 | static char *thisarg (char *str); |
92 | char *nextarg (char *str); | 90 | static char *nextarg (char *str); |
93 | void print_usage (void); | 91 | void print_usage (void); |
94 | void print_help (void); | 92 | static void print_help (void); |
95 | char *multiply (char *str); | 93 | static char *multiply (char *str); |
96 | 94 | ||
97 | #include "regex.h" | 95 | #include "regex.h" |
98 | char regex_expect[MAX_INPUT_BUFFER] = ""; | 96 | static char regex_expect[MAX_INPUT_BUFFER] = ""; |
99 | regex_t preg; | 97 | static regex_t preg; |
100 | regmatch_t pmatch[10]; | 98 | static regmatch_t pmatch[10]; |
101 | char errbuf[MAX_INPUT_BUFFER] = ""; | 99 | static char errbuf[MAX_INPUT_BUFFER] = ""; |
102 | char perfstr[MAX_INPUT_BUFFER] = "| "; | 100 | static char perfstr[MAX_INPUT_BUFFER] = "| "; |
103 | int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE; | 101 | static int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE; |
104 | int eflags = 0; | 102 | static int eflags = 0; |
105 | int errcode, excode; | 103 | static int errcode, excode; |
106 | 104 | ||
107 | char *server_address = NULL; | 105 | static char *server_address = NULL; |
108 | char *community = NULL; | 106 | static char *community = NULL; |
109 | char **contextargs = NULL; | 107 | static char **contextargs = NULL; |
110 | char *context = NULL; | 108 | static char *context = NULL; |
111 | char **authpriv = NULL; | 109 | static char **authpriv = NULL; |
112 | char *proto = NULL; | 110 | static char *proto = NULL; |
113 | char *seclevel = NULL; | 111 | static char *seclevel = NULL; |
114 | char *secname = NULL; | 112 | static char *secname = NULL; |
115 | char *authproto = NULL; | 113 | static char *authproto = NULL; |
116 | char *privproto = NULL; | 114 | static char *privproto = NULL; |
117 | char *authpasswd = NULL; | 115 | static char *authpasswd = NULL; |
118 | char *privpasswd = NULL; | 116 | static char *privpasswd = NULL; |
119 | int nulloid = STATE_UNKNOWN; | 117 | static int nulloid = STATE_UNKNOWN; |
120 | char **oids = NULL; | 118 | static char **oids = NULL; |
121 | size_t oids_size = 0; | 119 | static size_t oids_size = 0; |
122 | char *label; | 120 | static char *label; |
123 | char *units; | 121 | static char *units; |
124 | char *port; | 122 | static char *port; |
125 | char *snmpcmd; | 123 | static char *snmpcmd; |
126 | char string_value[MAX_INPUT_BUFFER] = ""; | 124 | static char string_value[MAX_INPUT_BUFFER] = ""; |
127 | int invert_search=0; | 125 | static int invert_search=0; |
128 | char **labels = NULL; | 126 | static char **labels = NULL; |
129 | char **unitv = NULL; | 127 | static char **unitv = NULL; |
130 | size_t nlabels = 0; | 128 | static size_t nlabels = 0; |
131 | size_t labels_size = OID_COUNT_STEP; | 129 | static size_t labels_size = OID_COUNT_STEP; |
132 | size_t nunits = 0; | 130 | static size_t nunits = 0; |
133 | size_t unitv_size = OID_COUNT_STEP; | 131 | static size_t unitv_size = OID_COUNT_STEP; |
134 | size_t numoids = 0; | 132 | static size_t numoids = 0; |
135 | int numauthpriv = 0; | 133 | static int numauthpriv = 0; |
136 | int numcontext = 0; | 134 | static int numcontext = 0; |
137 | int verbose = 0; | 135 | static int verbose = 0; |
138 | bool usesnmpgetnext = false; | 136 | static bool usesnmpgetnext = false; |
139 | char *warning_thresholds = NULL; | 137 | static char *warning_thresholds = NULL; |
140 | char *critical_thresholds = NULL; | 138 | static char *critical_thresholds = NULL; |
141 | thresholds **thlds; | 139 | static thresholds **thlds; |
142 | size_t thlds_size = OID_COUNT_STEP; | 140 | static size_t thlds_size = OID_COUNT_STEP; |
143 | double *response_value; | 141 | static double *response_value; |
144 | size_t response_size = OID_COUNT_STEP; | 142 | static size_t response_size = OID_COUNT_STEP; |
145 | int retries = 0; | 143 | static int retries = 0; |
146 | int *eval_method; | 144 | static int *eval_method; |
147 | size_t eval_size = OID_COUNT_STEP; | 145 | static size_t eval_size = OID_COUNT_STEP; |
148 | char *delimiter; | 146 | static char *delimiter; |
149 | char *output_delim; | 147 | static char *output_delim; |
150 | char *miblist = NULL; | 148 | static char *miblist = NULL; |
151 | bool needmibs = false; | 149 | static bool needmibs = false; |
152 | int calculate_rate = 0; | 150 | static int calculate_rate = 0; |
153 | double offset = 0.0; | 151 | static double offset = 0.0; |
154 | int rate_multiplier = 1; | 152 | static int rate_multiplier = 1; |
155 | state_data *previous_state; | 153 | static state_data *previous_state; |
156 | double *previous_value; | 154 | static double *previous_value; |
157 | size_t previous_size = OID_COUNT_STEP; | 155 | static size_t previous_size = OID_COUNT_STEP; |
158 | int perf_labels = 1; | 156 | static int perf_labels = 1; |
159 | char* ip_version = ""; | 157 | static char* ip_version = ""; |
160 | double multiplier = 1.0; | 158 | static double multiplier = 1.0; |
161 | char *fmtstr = ""; | 159 | static char *fmtstr = ""; |
162 | bool fmtstr_set = false; | 160 | static bool fmtstr_set = false; |
163 | char buffer[DEFAULT_BUFFER_SIZE]; | 161 | static char buffer[DEFAULT_BUFFER_SIZE]; |
164 | bool ignore_mib_parsing_errors = false; | 162 | static bool ignore_mib_parsing_errors = false; |
165 | 163 | ||
166 | static char *fix_snmp_range(char *th) | 164 | static char *fix_snmp_range(char *th) |
167 | { | 165 | { |
@@ -1030,7 +1028,7 @@ selected.</para> | |||
1030 | 1028 | ||
1031 | 1029 | ||
1032 | 1030 | ||
1033 | int | 1031 | static int |
1034 | validate_arguments () | 1032 | validate_arguments () |
1035 | { | 1033 | { |
1036 | /* check whether to load locally installed MIBS (CPU/disk intensive) */ | 1034 | /* check whether to load locally installed MIBS (CPU/disk intensive) */ |
@@ -1139,7 +1137,7 @@ validate_arguments () | |||
1139 | /* trim leading whitespace | 1137 | /* trim leading whitespace |
1140 | if there is a leading quote, make sure it balances */ | 1138 | if there is a leading quote, make sure it balances */ |
1141 | 1139 | ||
1142 | char * | 1140 | static char * |
1143 | thisarg (char *str) | 1141 | thisarg (char *str) |
1144 | { | 1142 | { |
1145 | str += strspn (str, " \t\r\n"); /* trim any leading whitespace */ | 1143 | str += strspn (str, " \t\r\n"); /* trim any leading whitespace */ |
@@ -1156,7 +1154,7 @@ thisarg (char *str) | |||
1156 | set the trailing quote to '\x0' | 1154 | set the trailing quote to '\x0' |
1157 | if the string continues, advance beyond the comma */ | 1155 | if the string continues, advance beyond the comma */ |
1158 | 1156 | ||
1159 | char * | 1157 | static char * |
1160 | nextarg (char *str) | 1158 | nextarg (char *str) |
1161 | { | 1159 | { |
1162 | if (str[0] == '\'') { | 1160 | if (str[0] == '\'') { |
@@ -1188,7 +1186,7 @@ nextarg (char *str) | |||
1188 | 1186 | ||
1189 | 1187 | ||
1190 | /* multiply result (values 0 < n < 1 work as divider) */ | 1188 | /* multiply result (values 0 < n < 1 work as divider) */ |
1191 | char * | 1189 | static char * |
1192 | multiply (char *str) | 1190 | multiply (char *str) |
1193 | { | 1191 | { |
1194 | char *endptr; | 1192 | char *endptr; |
@@ -1225,7 +1223,7 @@ multiply (char *str) | |||
1225 | } | 1223 | } |
1226 | 1224 | ||
1227 | 1225 | ||
1228 | void | 1226 | static void |
1229 | print_help (void) | 1227 | print_help (void) |
1230 | { | 1228 | { |
1231 | print_revision (progname, NP_VERSION); | 1229 | print_revision (progname, NP_VERSION); |
@@ -1253,10 +1251,12 @@ print_help (void) | |||
1253 | printf (" %s\n", _("SNMPv3 context")); | 1251 | printf (" %s\n", _("SNMPv3 context")); |
1254 | printf (" %s\n", "-L, --seclevel=[noAuthNoPriv|authNoPriv|authPriv]"); | 1252 | printf (" %s\n", "-L, --seclevel=[noAuthNoPriv|authNoPriv|authPriv]"); |
1255 | printf (" %s\n", _("SNMPv3 securityLevel")); | 1253 | printf (" %s\n", _("SNMPv3 securityLevel")); |
1256 | printf (" %s\n", "-a, --authproto=[MD5|SHA]"); | 1254 | printf (" %s\n", "-a, --authproto=AUTHENTICATION_PROTOCOL"); |
1257 | printf (" %s\n", _("SNMPv3 auth proto")); | 1255 | printf (" %s\n", _("SNMPv3 authentication protocol (default MD5), available options depend on the specific version of the net-snmp tools")); |
1258 | printf (" %s\n", "-x, --privproto=[DES|AES]"); | 1256 | 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")); |
1259 | printf (" %s\n", _("SNMPv3 priv proto (default DES)")); | 1257 | printf (" %s\n", "-x, --privproto=PRIVACY_PROTOCOL"); |
1258 | printf (" %s\n", _("SNMPv3 privacy protocol (default DES), available options depend on the specific version of the net-snmp tools")); | ||
1259 | printf (" %s\n", _("if < 5.8 DES and AES should be available, if >= 5.8 additionally AES-192 and AES-256")); | ||
1260 | 1260 | ||
1261 | /* Authentication Tokens*/ | 1261 | /* Authentication Tokens*/ |
1262 | printf (" %s\n", "-C, --community=STRING"); | 1262 | printf (" %s\n", "-C, --community=STRING"); |