1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
diff -up bind-9.9.5b1/bin/dig/dighost.c.rh570851 bind-9.9.5b1/bin/dig/dighost.c
--- bind-9.9.5b1/bin/dig/dighost.c.rh570851 2014-01-06 13:49:25.230380554 +0100
+++ bind-9.9.5b1/bin/dig/dighost.c 2014-01-06 13:54:25.804839409 +0100
@@ -131,6 +131,7 @@ isc_boolean_t
showsearch = ISC_FALSE,
qr = ISC_FALSE,
is_dst_up = ISC_FALSE,
+ verbose = ISC_FALSE,
keep_open = ISC_FALSE;
in_port_t port = 53;
unsigned int timeout = 0;
@@ -1257,10 +1258,24 @@ setup_system(void) {
}
}
+ if (lwconf->resdebug) {
+ verbose = ISC_TRUE;
+ debug("verbose is on");
+ }
if (ndots == -1) {
ndots = lwconf->ndots;
debug("ndots is %d.", ndots);
}
+ if (lwconf->attempts) {
+ tries = lwconf->attempts + 1;
+ if (tries < 2)
+ tries = 2;
+ debug("tries is %d.", tries);
+ }
+ if (lwconf->timeout) {
+ timeout = lwconf->timeout;
+ debug("timeout is %d.", timeout);
+ }
/* If user doesn't specify server use nameservers from resolv.conf. */
if (ISC_LIST_EMPTY(server_list))
diff -up bind-9.9.5b1/bin/dig/host.c.rh570851 bind-9.9.5b1/bin/dig/host.c
--- bind-9.9.5b1/bin/dig/host.c.rh570851 2013-12-12 06:59:59.000000000 +0100
+++ bind-9.9.5b1/bin/dig/host.c 2014-01-06 13:49:25.241380571 +0100
@@ -672,6 +672,7 @@ parse_args(isc_boolean_t is_batchfile, i
lookup->servfail_stops = ISC_FALSE;
lookup->comments = ISC_FALSE;
+ short_form = !verbose;
while ((c = isc_commandline_parse(argc, argv, optstring)) != -1) {
switch (c) {
@@ -882,8 +883,8 @@ main(int argc, char **argv) {
result = isc_app_start();
check_result(result, "isc_app_start");
setup_libs();
- parse_args(ISC_FALSE, argc, argv);
setup_system();
+ parse_args(ISC_FALSE, argc, argv);
result = isc_app_onrun(mctx, global_task, onrun_callback, NULL);
check_result(result, "isc_app_onrun");
isc_app_run();
diff -up bind-9.9.5b1/bin/dig/include/dig/dig.h.rh570851 bind-9.9.5b1/bin/dig/include/dig/dig.h
--- bind-9.9.5b1/bin/dig/include/dig/dig.h.rh570851 2013-12-12 06:59:59.000000000 +0100
+++ bind-9.9.5b1/bin/dig/include/dig/dig.h 2014-01-06 13:49:25.241380571 +0100
@@ -281,6 +281,7 @@ extern isc_boolean_t keep_open;
extern char *progname;
extern int tries;
extern int fatalexit;
+extern isc_boolean_t verbose;
#ifdef WITH_IDN
extern int idnoptions;
#endif
diff -up bind-9.9.5b1/lib/lwres/include/lwres/lwres.h.rh570851 bind-9.9.5b1/lib/lwres/include/lwres/lwres.h
--- bind-9.9.5b1/lib/lwres/include/lwres/lwres.h.rh570851 2013-12-12 06:59:59.000000000 +0100
+++ bind-9.9.5b1/lib/lwres/include/lwres/lwres.h 2014-01-06 13:49:25.241380571 +0100
@@ -243,6 +243,8 @@ typedef struct {
lwres_uint8_t resdebug; /*%< non-zero if 'options debug' set */
lwres_uint8_t ndots; /*%< set to n in 'options ndots:n' */
lwres_uint8_t no_tld_query; /*%< non-zero if 'options no_tld_query' */
+ lwres_int32_t attempts; /*%< set to n in 'options attempts:n' */
+ lwres_int32_t timeout; /*%< set to n in 'options timeout:n' */
} lwres_conf_t;
#define LWRES_ADDRTYPE_V4 0x00000001U /*%< ipv4 */
diff -up bind-9.9.5b1/lib/lwres/lwconfig.c.rh570851 bind-9.9.5b1/lib/lwres/lwconfig.c
--- bind-9.9.5b1/lib/lwres/lwconfig.c.rh570851 2013-12-12 06:59:59.000000000 +0100
+++ bind-9.9.5b1/lib/lwres/lwconfig.c 2014-01-06 13:49:25.241380571 +0100
@@ -237,6 +237,8 @@ lwres_conf_init(lwres_context_t *ctx) {
confdata->resdebug = 0;
confdata->ndots = 1;
confdata->no_tld_query = 0;
+ confdata->attempts = 0;
+ confdata->timeout = 0;
for (i = 0; i < LWRES_CONFMAXNAMESERVERS; i++)
lwres_resetaddr(&confdata->nameservers[i]);
@@ -289,6 +291,8 @@ lwres_conf_clear(lwres_context_t *ctx) {
confdata->resdebug = 0;
confdata->ndots = 1;
confdata->no_tld_query = 0;
+ confdata->attempts = 0;
+ confdata->timeout = 0;
}
static lwres_result_t
@@ -530,6 +534,8 @@ static lwres_result_t
lwres_conf_parseoption(lwres_context_t *ctx, FILE *fp) {
int delim;
long ndots;
+ long attempts;
+ long timeout;
char *p;
char word[LWRES_CONFMAXLINELEN];
lwres_conf_t *confdata;
@@ -546,6 +552,8 @@ lwres_conf_parseoption(lwres_context_t *
confdata->resdebug = 1;
} else if (strcmp("no_tld_query", word) == 0) {
confdata->no_tld_query = 1;
+ } else if (strcmp("debug", word) == 0) {
+ confdata->resdebug = 1;
} else if (strncmp("ndots:", word, 6) == 0) {
ndots = strtol(word + 6, &p, 10);
if (*p != '\0') /* Bad string. */
@@ -553,6 +561,18 @@ lwres_conf_parseoption(lwres_context_t *
if (ndots < 0 || ndots > 0xff) /* Out of range. */
return (LWRES_R_FAILURE);
confdata->ndots = (lwres_uint8_t)ndots;
+ } else if (strncmp("timeout:", word, 8) == 0) {
+ timeout = strtol(word + 8, &p, 10);
+ if (*p != '\0') /* Bad string. */
+ return (LWRES_R_FAILURE);
+ confdata->timeout = (lwres_int32_t)timeout;
+ } else if (strncmp("attempts:", word, 9) == 0) {
+ attempts = strtol(word + 9, &p, 10);
+ if (*p != '\0') /* Bad string. */
+ return (LWRES_R_FAILURE);
+ if (attempts < 0) /* Out of range. */
+ return (LWRES_R_FAILURE);
+ confdata->attempts = (lwres_int32_t)attempts;
}
if (delim == EOF || delim == '\n')
@@ -717,6 +737,12 @@ lwres_conf_print(lwres_context_t *ctx, F
if (confdata->no_tld_query)
fprintf(fp, "options no_tld_query\n");
+ if (confdata->attempts)
+ fprintf(fp, "options attempts:%d\n", confdata->attempts);
+
+ if (confdata->timeout)
+ fprintf(fp, "options timeout:%d\n", confdata->timeout);
+
return (LWRES_R_SUCCESS);
}
|