summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/check_http.c20
-rw-r--r--plugins/check_ldap.c30
-rw-r--r--plugins/check_smtp.c20
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
34const char *option_summary = "\ 34const 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
38const char *options = "\ 38const 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);