diff options
author | Ville Mattila <vmattila@csc.fi> | 2012-12-28 12:17:15 +0200 |
---|---|---|
committer | Sven Nierlein <sven@nierlein.de> | 2013-01-23 20:04:04 +0100 |
commit | 261ad186706422af00ec7e67dc128a99c4603b8c (patch) | |
tree | 32067ee9d209d33a3f1431434d75d4e6d8328d1a | |
parent | 8d63b171b0c3e909f237dc244c1bbe8d7b5104c8 (diff) | |
download | monitoring-plugins-261ad186706422af00ec7e67dc128a99c4603b8c.tar.gz |
check_dig: query transport selection support
Add command line options -4 and -6 (--use-ipv4 and
--use-ipv6) to check_dig.
Effectively this adds no new functionality, just a
shortcut for:
check_dig -A "-4"
check_dig -A "-6"
Needed for using check_dig with the check_v46 wrapper
(see e.g.
https://gitorious.org/nagios-monitoring-tools/nagios-monitoring-tools/blobs/master/check_v46)
which requires -4/-6 command line option support.
-rw-r--r-- | plugins/check_dig.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index 893e0a14..3c80cb72 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c @@ -54,6 +54,7 @@ char *record_type = "A"; char *expected_address = NULL; char *dns_server = NULL; char *dig_args = ""; +char *query_transport = ""; int verbose = FALSE; int server_port = DEFAULT_PORT; double warning_interval = UNDEFINED; @@ -87,8 +88,8 @@ main (int argc, char **argv) usage_va(_("Could not parse arguments")); /* get the command to run */ - xasprintf (&command_line, "%s @%s -p %d %s -t %s %s", - PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args); + xasprintf (&command_line, "%s @%s -p %d %s -t %s %s %s", + PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args, query_transport); alarm (timeout_interval); gettimeofday (&tv, NULL); @@ -199,6 +200,8 @@ process_arguments (int argc, char **argv) {"record_type", required_argument, 0, 'T'}, {"expected_address", required_argument, 0, 'a'}, {"port", required_argument, 0, 'p'}, + {"use-ipv4", no_argument, 0, '4'}, + {"use-ipv6", no_argument, 0, '6'}, {0, 0, 0, 0} }; @@ -206,7 +209,7 @@ process_arguments (int argc, char **argv) return ERROR; while (1) { - c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:A:", longopts, &option); + c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:A:46", longopts, &option); if (c == -1 || c == EOF) break; @@ -269,6 +272,12 @@ process_arguments (int argc, char **argv) case 'a': expected_address = optarg; break; + case '4': + query_transport = "-4"; + break; + case '6': + query_transport = "-6"; + break; default: /* usage5 */ usage5(); } @@ -325,6 +334,10 @@ print_help (void) printf (UT_HOST_PORT, 'p', myport); + printf (" %s\n","-4, --use-ipv4"); + printf (" %s\n",_("Force dig to only use IPv4 query transport")); + printf (" %s\n","-6, --use-ipv6"); + printf (" %s\n",_("Force dig to only use IPv6 query transport")); printf (" %s\n","-l, --query_address=STRING"); printf (" %s\n",_("Machine name to lookup")); printf (" %s\n","-T, --record_type=STRING"); |