summaryrefslogtreecommitdiffstats
path: root/plugins/check_dig.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/check_dig.c')
-rw-r--r--plugins/check_dig.c141
1 files changed, 79 insertions, 62 deletions
diff --git a/plugins/check_dig.c b/plugins/check_dig.c
index 3d82298f..7c39a243 100644
--- a/plugins/check_dig.c
+++ b/plugins/check_dig.c
@@ -1,22 +1,21 @@
1/***************************************************************************** 1/*****************************************************************************
2* 2
3* This program is free software; you can redistribute it and/or modify 3 This program is free software; you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4 it under the terms of the GNU General Public License as published by
5* the Free Software Foundation; either version 2 of the License, or 5 the Free Software Foundation; either version 2 of the License, or
6* (at your option) any later version. 6 (at your option) any later version.
7* 7
8* This program is distributed in the hope that it will be useful, 8 This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11 GNU General Public License for more details.
12* 12
13* You should have received a copy of the GNU General Public License 13 You should have received a copy of the GNU General Public License
14* along with this program; if not, write to the Free Software 14 along with this program; if not, write to the Free Software
15* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 15 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16* 16
17*****************************************************************************/ 17*****************************************************************************/
18 18
19#include "config.h"
20#include "common.h" 19#include "common.h"
21#include "netutils.h" 20#include "netutils.h"
22#include "utils.h" 21#include "utils.h"
@@ -36,50 +35,6 @@ enum {
36 DEFAULT_PORT = 53 35 DEFAULT_PORT = 53
37}; 36};
38 37
39void
40print_usage (void)
41{
42 printf (_("\
43Usage: %s -H host -l lookup [-p <server port>] [-w <warning interval>]\n\
44 [-c <critical interval>] [-t <timeout>] [-v]\n"),
45 progname);
46 printf (" %s (-h|--help)\n", progname);
47 printf (" %s (-V|--version)\n", progname);
48}
49
50void
51print_help (void)
52{
53 char *myport;
54
55 asprintf (&myport, "%d", DEFAULT_PORT);
56
57 print_revision (progname, revision);
58
59 printf (_(COPYRIGHT), copyright, email);
60
61 printf (_("Test the DNS service on the specified host using dig\n\n"));
62
63 print_usage ();
64
65 printf (_(UT_HELP_VRSN));
66
67 printf (_(UT_HOST_PORT), 'P', myport);
68
69 printf (_("\
70 -l, --lookup=STRING\n\
71 machine name to lookup\n"));
72
73 printf (_(UT_WARN_CRIT));
74
75 printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
76
77 printf (_(UT_VERBOSE));
78
79 support ();
80}
81
82
83char *query_address = NULL; 38char *query_address = NULL;
84char *dns_server = NULL; 39char *dns_server = NULL;
85int verbose = FALSE; 40int verbose = FALSE;
@@ -88,14 +43,20 @@ int warning_interval = -1;
88int critical_interval = -1; 43int critical_interval = -1;
89 44
90 45
46
47
48
49
91int 50int
92main (int argc, char **argv) 51main (int argc, char **argv)
93{ 52{
94 char input_buffer[MAX_INPUT_BUFFER]; 53 char input_buffer[MAX_INPUT_BUFFER];
95 char *command_line = NULL; 54 char *command_line;
96 char *output = ""; 55 char *output;
97 int result = STATE_UNKNOWN; 56 int result = STATE_UNKNOWN;
98 57
58 output = strdup ("");
59
99 /* Set signal handling and alarm */ 60 /* Set signal handling and alarm */
100 if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR) 61 if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR)
101 usage (_("Cannot catch SIGALRM\n")); 62 usage (_("Cannot catch SIGALRM\n"));
@@ -188,6 +149,11 @@ main (int argc, char **argv)
188 return result; 149 return result;
189} 150}
190 151
152
153
154
155
156
191/* process command-line arguments */ 157/* process command-line arguments */
192int 158int
193process_arguments (int argc, char **argv) 159process_arguments (int argc, char **argv)
@@ -298,4 +264,55 @@ validate_arguments (void)
298{ 264{
299 return OK; 265 return OK;
300} 266}
267
268
269
270
271
272
301 273
274void
275print_help (void)
276{
277 char *myport;
278
279 asprintf (&myport, "%d", DEFAULT_PORT);
280
281 print_revision (progname, revision);
282
283 printf (_(COPYRIGHT), copyright, email);
284
285 printf (_("Test the DNS service on the specified host using dig\n\n"));
286
287 print_usage ();
288
289 printf (_(UT_HELP_VRSN));
290
291 printf (_(UT_HOST_PORT), 'P', myport);
292
293 printf (_("\
294 -l, --lookup=STRING\n\
295 machine name to lookup\n"));
296
297 printf (_(UT_WARN_CRIT));
298
299 printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
300
301 printf (_(UT_VERBOSE));
302
303 support ();
304}
305
306
307
308
309void
310print_usage (void)
311{
312 printf (_("\
313Usage: %s -H host -l lookup [-p <server port>] [-w <warning interval>]\n\
314 [-c <critical interval>] [-t <timeout>] [-v]\n"),
315 progname);
316 printf (" %s (-h|--help)\n", progname);
317 printf (" %s (-V|--version)\n", progname);
318}