diff options
-rw-r--r-- | plugins/check_http.c | 20 | ||||
-rw-r--r-- | plugins/check_ldap.c | 30 | ||||
-rw-r--r-- | plugins/check_smtp.c | 20 |
3 files changed, 60 insertions, 10 deletions
diff --git a/plugins/check_http.c b/plugins/check_http.c index 468e4c22..038ac68a 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
@@ -45,13 +45,17 @@ certificate expiration times.\n" | |||
45 | [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]\n\ | 45 | [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]\n\ |
46 | [-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>]\n\ | 46 | [-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>]\n\ |
47 | [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]\n\ | 47 | [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]\n\ |
48 | [-P string] [-m min_pg_size]" | 48 | [-P string] [-m min_pg_size] [-4|-6]" |
49 | 49 | ||
50 | #define LONGOPTIONS "\ | 50 | #define LONGOPTIONS "\ |
51 | -H, --hostname=ADDRESS\n\ | 51 | -H, --hostname=ADDRESS\n\ |
52 | Host name argument for servers using host headers (virtual host)\n\ | 52 | Host name argument for servers using host headers (virtual host)\n\ |
53 | -I, --IP-address=ADDRESS\n\ | 53 | -I, --IP-address=ADDRESS\n\ |
54 | IP address or name (use numeric address if possible to bypass DNS lookup).\n\ | 54 | IP address or name (use numeric address if possible to bypass DNS lookup).\n\ |
55 | -4, --use-ipv4\n\ | ||
56 | Use IPv4 protocol\n\ | ||
57 | -6, --use-ipv6\n\ | ||
58 | Use IPv6 protocol\n\ | ||
55 | -e, --expect=STRING\n\ | 59 | -e, --expect=STRING\n\ |
56 | String to expect in first (status) line of server response (default: %s)\n\ | 60 | String to expect in first (status) line of server response (default: %s)\n\ |
57 | If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)\n\ | 61 | If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)\n\ |
@@ -316,6 +320,8 @@ process_arguments (int argc, char **argv) | |||
316 | {"onredirect", required_argument, 0, 'f'}, | 320 | {"onredirect", required_argument, 0, 'f'}, |
317 | {"certificate", required_argument, 0, 'C'}, | 321 | {"certificate", required_argument, 0, 'C'}, |
318 | {"min", required_argument, 0, 'm'}, | 322 | {"min", required_argument, 0, 'm'}, |
323 | {"use-ipv4", no_argument, 0, '4'}, | ||
324 | {"use-ipv6", no_argument, 0, '6'}, | ||
319 | {0, 0, 0, 0} | 325 | {0, 0, 0, 0} |
320 | }; | 326 | }; |
321 | 327 | ||
@@ -336,7 +342,7 @@ process_arguments (int argc, char **argv) | |||
336 | } | 342 | } |
337 | 343 | ||
338 | while (1) { | 344 | while (1) { |
339 | c = getopt_long (argc, argv, "Vvht:c:w:H:P:I:a:e:p:s:R:r:u:f:C:nlLSm:", long_options, &option_index); | 345 | c = getopt_long (argc, argv, "Vvh46t:c:w:H:P:I:a:e:p:s:R:r:u:f:C:nlLSm:", long_options, &option_index); |
340 | if (c == -1 || c == EOF) | 346 | if (c == -1 || c == EOF) |
341 | break; | 347 | break; |
342 | 348 | ||
@@ -464,6 +470,16 @@ process_arguments (int argc, char **argv) | |||
464 | } | 470 | } |
465 | break; | 471 | break; |
466 | #endif | 472 | #endif |
473 | case '4': | ||
474 | address_family = AF_INET; | ||
475 | break; | ||
476 | case '6': | ||
477 | #ifdef USE_IPV6 | ||
478 | address_family = AF_INET6; | ||
479 | #else | ||
480 | usage ("IPv6 support not available\n"); | ||
481 | #endif | ||
482 | break; | ||
467 | case 'v': /* verbose */ | 483 | case 'v': /* verbose */ |
468 | verbose = TRUE; | 484 | verbose = TRUE; |
469 | break; | 485 | break; |
diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c index 8eb89569..af919f27 100644 --- a/plugins/check_ldap.c +++ b/plugins/check_ldap.c | |||
@@ -159,6 +159,8 @@ process_arguments (int argc, char **argv) | |||
159 | {"ver2", no_argument, 0, '2'}, | 159 | {"ver2", no_argument, 0, '2'}, |
160 | {"ver3", no_argument, 0, '3'}, | 160 | {"ver3", no_argument, 0, '3'}, |
161 | #endif | 161 | #endif |
162 | {"use-ipv4", no_argument, 0, '4'}, | ||
163 | {"use-ipv6", no_argument, 0, '6'}, | ||
162 | {"port", required_argument, 0, 'p'}, | 164 | {"port", required_argument, 0, 'p'}, |
163 | {"warn", required_argument, 0, 'w'}, | 165 | {"warn", required_argument, 0, 'w'}, |
164 | {"crit", required_argument, 0, 'c'}, | 166 | {"crit", required_argument, 0, 'c'}, |
@@ -174,7 +176,7 @@ process_arguments (int argc, char **argv) | |||
174 | } | 176 | } |
175 | 177 | ||
176 | while (1) { | 178 | while (1) { |
177 | c = getopt_long (argc, argv, "hV23t:c:w:H:b:p:a:D:P:", longopts, &option_index); | 179 | c = getopt_long (argc, argv, "hV2346t:c:w:H:b:p:a:D:P:", longopts, &option_index); |
178 | 180 | ||
179 | if (c == -1 || c == EOF) | 181 | if (c == -1 || c == EOF) |
180 | break; | 182 | break; |
@@ -223,14 +225,28 @@ process_arguments (int argc, char **argv) | |||
223 | ld_protocol = 3; | 225 | ld_protocol = 3; |
224 | break; | 226 | break; |
225 | #endif | 227 | #endif |
228 | case '4': | ||
229 | address_family = AF_INET; | ||
230 | break; | ||
231 | case '6': | ||
232 | #ifdef USE_IPV6 | ||
233 | address_family = AF_INET6; | ||
234 | #else | ||
235 | usage ("IPv6 support not available\n"); | ||
236 | #endif | ||
237 | break; | ||
226 | default: | 238 | default: |
227 | usage ("check_ldap: could not parse unknown arguments\n"); | 239 | usage ("check_ldap: could not parse unknown arguments\n"); |
228 | break; | 240 | break; |
229 | } | 241 | } |
230 | } | 242 | } |
231 | 243 | ||
232 | if (ld_host[0] == 0) { | 244 | c = optind; |
233 | asprintf (&ld_host, "%s", argv[c]); | 245 | if (strlen(ld_host) == 0 && is_host(argv[c])) { |
246 | asprintf (&ld_host, "%s", argv[c++]); | ||
247 | } | ||
248 | if (strlen(ld_base) == 0 && argv[c]) { | ||
249 | asprintf (&ld_base, "%s", argv[c++]); | ||
234 | } | 250 | } |
235 | 251 | ||
236 | return validate_arguments (); | 252 | return validate_arguments (); |
@@ -271,8 +287,10 @@ print_help () | |||
271 | "\t-P [--pass] ... ldap password (if required)\n" | 287 | "\t-P [--pass] ... ldap password (if required)\n" |
272 | "\t-p [--port] ... ldap port (default: %d)\n" | 288 | "\t-p [--port] ... ldap port (default: %d)\n" |
273 | #ifdef HAVE_LDAP_SET_OPTION | 289 | #ifdef HAVE_LDAP_SET_OPTION |
274 | "\t-2 [--ver2] ... use ldap porotocol version 2\n" | 290 | "\t-2 [--ver2] ... use ldap protocol version 2\n" |
275 | "\t-3 [--ver3] ... use ldap porotocol version 3\n" | 291 | "\t-3 [--ver3] ... use ldap protocol version 3\n" |
292 | "\t-4 [--use-ipv4] ... use IPv4 protocol\n" | ||
293 | "\t-6 [--use-ipv6] ... use IPv6 protocol\n" | ||
276 | "\t\t(default protocol version: %d)\n" | 294 | "\t\t(default protocol version: %d)\n" |
277 | #endif | 295 | #endif |
278 | "\t-w [--warn] ... time in secs. - if the exceeds <warn> the STATE_WARNING will be returned\n" | 296 | "\t-w [--warn] ... time in secs. - if the exceeds <warn> the STATE_WARNING will be returned\n" |
@@ -292,7 +310,7 @@ print_usage () | |||
292 | ("Usage: %s -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]\n" | 310 | ("Usage: %s -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]\n" |
293 | " [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]\n" | 311 | " [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]\n" |
294 | #ifdef HAVE_LDAP_SET_OPTION | 312 | #ifdef HAVE_LDAP_SET_OPTION |
295 | " [-2|-3]\n" | 313 | " [-2|-3] [-4|-6]\n" |
296 | #endif | 314 | #endif |
297 | "(Note: all times are in seconds.)\n", progname); | 315 | "(Note: all times are in seconds.)\n", progname); |
298 | } | 316 | } |
diff --git a/plugins/check_smtp.c b/plugins/check_smtp.c index dd9f19bc..7562c4c6 100644 --- a/plugins/check_smtp.c +++ b/plugins/check_smtp.c | |||
@@ -33,11 +33,15 @@ STATE_WARNING return values.\n"; | |||
33 | 33 | ||
34 | const char *option_summary = "\ | 34 | const char *option_summary = "\ |
35 | -H host [-p port] [-e expect] [-C command] [-f from addr]\n\ | 35 | -H host [-p port] [-e expect] [-C command] [-f from addr]\n\ |
36 | [-w warn] [-c crit] [-t timeout] [-n] [-v]"; | 36 | [-w warn] [-c crit] [-t timeout] [-n] [-v] [-4|-6]"; |
37 | 37 | ||
38 | const char *options = "\ | 38 | const char *options = "\ |
39 | -H, --hostname=STRING or IPADDRESS\n\ | 39 | -H, --hostname=STRING or IPADDRESS\n\ |
40 | Check server on the indicated host\n\ | 40 | Check server on the indicated host\n\ |
41 | -4, --use-ipv4\n\ | ||
42 | Use IPv4 protocol\n\ | ||
43 | -6, --use-ipv6\n\ | ||
44 | Use IPv6 protocol\n\ | ||
41 | -p, --port=INTEGER\n\ | 45 | -p, --port=INTEGER\n\ |
42 | Make connection on the indicated port (default: %d)\n\ | 46 | Make connection on the indicated port (default: %d)\n\ |
43 | -e, --expect=STRING\n\ | 47 | -e, --expect=STRING\n\ |
@@ -233,6 +237,8 @@ process_arguments (int argc, char **argv) | |||
233 | {"nocommand", required_argument, 0, 'n'}, | 237 | {"nocommand", required_argument, 0, 'n'}, |
234 | {"verbose", no_argument, 0, 'v'}, | 238 | {"verbose", no_argument, 0, 'v'}, |
235 | {"version", no_argument, 0, 'V'}, | 239 | {"version", no_argument, 0, 'V'}, |
240 | {"use-ipv4", no_argument, 0, '4'}, | ||
241 | {"use-ipv6", no_argument, 0, '6'}, | ||
236 | {"help", no_argument, 0, 'h'}, | 242 | {"help", no_argument, 0, 'h'}, |
237 | {0, 0, 0, 0} | 243 | {0, 0, 0, 0} |
238 | }; | 244 | }; |
@@ -250,7 +256,7 @@ process_arguments (int argc, char **argv) | |||
250 | } | 256 | } |
251 | 257 | ||
252 | while (1) { | 258 | while (1) { |
253 | c = getopt_long (argc, argv, "+hVvt:p:f:e:c:w:H:C:", | 259 | c = getopt_long (argc, argv, "+hVv46t:p:f:e:c:w:H:C:", |
254 | long_options, &option_index); | 260 | long_options, &option_index); |
255 | 261 | ||
256 | if (c == -1 || c == EOF) | 262 | if (c == -1 || c == EOF) |
@@ -315,6 +321,16 @@ process_arguments (int argc, char **argv) | |||
315 | usage ("Time interval must be a nonnegative integer\n"); | 321 | usage ("Time interval must be a nonnegative integer\n"); |
316 | } | 322 | } |
317 | break; | 323 | break; |
324 | case '4': | ||
325 | address_family = AF_INET; | ||
326 | break; | ||
327 | case '6': | ||
328 | #ifdef USE_IPV6 | ||
329 | address_family = AF_INET6; | ||
330 | #else | ||
331 | usage ("IPv6 support not available\n"); | ||
332 | #endif | ||
333 | break; | ||
318 | case 'V': /* version */ | 334 | case 'V': /* version */ |
319 | print_revision (progname, revision); | 335 | print_revision (progname, revision); |
320 | exit (STATE_OK); | 336 | exit (STATE_OK); |