diff options
Diffstat (limited to 'plugins/check_dig.c')
-rw-r--r-- | plugins/check_dig.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index 37a9a467..286efbeb 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c | |||
@@ -57,6 +57,7 @@ char *query_address = NULL; | |||
57 | char *record_type = "A"; | 57 | char *record_type = "A"; |
58 | char *expected_address = NULL; | 58 | char *expected_address = NULL; |
59 | char *dns_server = NULL; | 59 | char *dns_server = NULL; |
60 | char *dig_args = ""; | ||
60 | int verbose = FALSE; | 61 | int verbose = FALSE; |
61 | int server_port = DEFAULT_PORT; | 62 | int server_port = DEFAULT_PORT; |
62 | double warning_interval = UNDEFINED; | 63 | double warning_interval = UNDEFINED; |
@@ -87,8 +88,8 @@ main (int argc, char **argv) | |||
87 | usage_va(_("Could not parse arguments")); | 88 | usage_va(_("Could not parse arguments")); |
88 | 89 | ||
89 | /* get the command to run */ | 90 | /* get the command to run */ |
90 | asprintf (&command_line, "%s @%s -p %d %s -t %s", | 91 | asprintf (&command_line, "%s @%s -p %d %s -t %s %s", |
91 | PATH_TO_DIG, dns_server, server_port, query_address, record_type); | 92 | PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args); |
92 | 93 | ||
93 | alarm (timeout_interval); | 94 | alarm (timeout_interval); |
94 | gettimeofday (&tv, NULL); | 95 | gettimeofday (&tv, NULL); |
@@ -190,6 +191,7 @@ process_arguments (int argc, char **argv) | |||
190 | {"warning", required_argument, 0, 'w'}, | 191 | {"warning", required_argument, 0, 'w'}, |
191 | {"critical", required_argument, 0, 'c'}, | 192 | {"critical", required_argument, 0, 'c'}, |
192 | {"timeout", required_argument, 0, 't'}, | 193 | {"timeout", required_argument, 0, 't'}, |
194 | {"dig-arguments", required_argument, 0, 'A'}, | ||
193 | {"verbose", no_argument, 0, 'v'}, | 195 | {"verbose", no_argument, 0, 'v'}, |
194 | {"version", no_argument, 0, 'V'}, | 196 | {"version", no_argument, 0, 'V'}, |
195 | {"help", no_argument, 0, 'h'}, | 197 | {"help", no_argument, 0, 'h'}, |
@@ -203,7 +205,7 @@ process_arguments (int argc, char **argv) | |||
203 | return ERROR; | 205 | return ERROR; |
204 | 206 | ||
205 | while (1) { | 207 | while (1) { |
206 | c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:", longopts, &option); | 208 | c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:A:", longopts, &option); |
207 | 209 | ||
208 | if (c == -1 || c == EOF) | 210 | if (c == -1 || c == EOF) |
209 | break; | 211 | break; |
@@ -254,6 +256,9 @@ process_arguments (int argc, char **argv) | |||
254 | usage_va(_("Timeout interval must be a positive integer - %s"), optarg); | 256 | usage_va(_("Timeout interval must be a positive integer - %s"), optarg); |
255 | } | 257 | } |
256 | break; | 258 | break; |
259 | case 'A': /* dig arguments */ | ||
260 | dig_args = strdup(optarg); | ||
261 | break; | ||
257 | case 'v': /* verbose */ | 262 | case 'v': /* verbose */ |
258 | verbose = TRUE; | 263 | verbose = TRUE; |
259 | break; | 264 | break; |
@@ -320,9 +325,14 @@ print_help (void) | |||
320 | printf (" %s\n",_("record type to lookup (default: A)")); | 325 | printf (" %s\n",_("record type to lookup (default: A)")); |
321 | printf (" %s\n","-a, --expected_address=STRING"); | 326 | printf (" %s\n","-a, --expected_address=STRING"); |
322 | printf (" %s\n",_("an address expected to be in the answer section.if not set, uses whatever was in -l")); | 327 | printf (" %s\n",_("an address expected to be in the answer section.if not set, uses whatever was in -l")); |
328 | printf (" %s\n","-A, --dig-arguments=STRING"); | ||
329 | printf (" %s\n",_("pass STRING as argument(s) to dig")); | ||
323 | printf (_(UT_WARN_CRIT)); | 330 | printf (_(UT_WARN_CRIT)); |
324 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); | 331 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); |
325 | printf (_(UT_VERBOSE)); | 332 | printf (_(UT_VERBOSE)); |
333 | printf ("%s\n", _("Examples:")); | ||
334 | printf (" %s\n", "check_dig -H DNSSERVER -l www.example.com -A \"+tcp\""); | ||
335 | printf (" %s\n", "This will send a tcp query to DNSSERVER for www.example.com"); | ||
326 | printf (_(UT_SUPPORT)); | 336 | printf (_(UT_SUPPORT)); |
327 | } | 337 | } |
328 | 338 | ||