mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-03 16:15:27 +00:00
Change 3813 broke dig/host -4/-6. No CHANGES as this is has not been released
This commit is contained in:
@@ -68,7 +68,8 @@ static isc_boolean_t short_form = ISC_FALSE, printcmd = ISC_TRUE,
|
|||||||
ip6_int = ISC_FALSE, plusquest = ISC_FALSE, pluscomm = ISC_FALSE,
|
ip6_int = ISC_FALSE, plusquest = ISC_FALSE, pluscomm = ISC_FALSE,
|
||||||
multiline = ISC_FALSE, nottl = ISC_FALSE, noclass = ISC_FALSE,
|
multiline = ISC_FALSE, nottl = ISC_FALSE, noclass = ISC_FALSE,
|
||||||
onesoa = ISC_FALSE, rrcomments = ISC_FALSE, use_usec = ISC_FALSE,
|
onesoa = ISC_FALSE, rrcomments = ISC_FALSE, use_usec = ISC_FALSE,
|
||||||
nocrypto = ISC_FALSE, ttlunits = ISC_FALSE;
|
nocrypto = ISC_FALSE, ttlunits = ISC_FALSE, ipv4only = ISC_FALSE,
|
||||||
|
ipv6only = ISC_FALSE;
|
||||||
static isc_uint32_t splitwidth = 0xffffffff;
|
static isc_uint32_t splitwidth = 0xffffffff;
|
||||||
|
|
||||||
/*% opcode text */
|
/*% opcode text */
|
||||||
@@ -1715,11 +1716,22 @@ preparse_args(int argc, char **argv) {
|
|||||||
continue;
|
continue;
|
||||||
option = &rv[0][1];
|
option = &rv[0][1];
|
||||||
while (strpbrk(option, single_dash_opts) == &option[0]) {
|
while (strpbrk(option, single_dash_opts) == &option[0]) {
|
||||||
if (option[0] == 'm') {
|
switch (option[0]) {
|
||||||
|
case 'm':
|
||||||
memdebugging = ISC_TRUE;
|
memdebugging = ISC_TRUE;
|
||||||
isc_mem_debugging = ISC_MEM_DEBUGTRACE |
|
isc_mem_debugging = ISC_MEM_DEBUGTRACE |
|
||||||
ISC_MEM_DEBUGRECORD;
|
ISC_MEM_DEBUGRECORD;
|
||||||
return;
|
break;
|
||||||
|
case '4':
|
||||||
|
if (ipv6only)
|
||||||
|
fatal("only one of -4 and -6 allowed");
|
||||||
|
ipv4only = ISC_TRUE;
|
||||||
|
break;
|
||||||
|
case '6':
|
||||||
|
if (ipv4only)
|
||||||
|
fatal("only one of -4 and -6 allowed");
|
||||||
|
ipv6only = ISC_TRUE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
option = &option[1];
|
option = &option[1];
|
||||||
}
|
}
|
||||||
@@ -2081,12 +2093,12 @@ main(int argc, char **argv) {
|
|||||||
ISC_LIST_INIT(search_list);
|
ISC_LIST_INIT(search_list);
|
||||||
|
|
||||||
debug("main()");
|
debug("main()");
|
||||||
preparse_args(argc, argv);
|
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
|
preparse_args(argc, argv);
|
||||||
result = isc_app_start();
|
result = isc_app_start();
|
||||||
check_result(result, "isc_app_start");
|
check_result(result, "isc_app_start");
|
||||||
setup_libs();
|
setup_libs();
|
||||||
setup_system();
|
setup_system(ipv4only, ipv6only);
|
||||||
parse_args(ISC_FALSE, ISC_FALSE, argc, argv);
|
parse_args(ISC_FALSE, ISC_FALSE, argc, argv);
|
||||||
if (keyfile[0] != 0)
|
if (keyfile[0] != 0)
|
||||||
setup_file_key();
|
setup_file_key();
|
||||||
|
@@ -1339,7 +1339,7 @@ create_search_list(lwres_conf_t *confdata) {
|
|||||||
* settings.
|
* settings.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
setup_system(void) {
|
setup_system(isc_boolean_t ipv4only, isc_boolean_t ipv6only) {
|
||||||
dig_searchlist_t *domain = NULL;
|
dig_searchlist_t *domain = NULL;
|
||||||
lwres_result_t lwresult;
|
lwres_result_t lwresult;
|
||||||
unsigned int lwresflags;
|
unsigned int lwresflags;
|
||||||
@@ -1347,6 +1347,24 @@ setup_system(void) {
|
|||||||
|
|
||||||
debug("setup_system()");
|
debug("setup_system()");
|
||||||
|
|
||||||
|
if (ipv4only) {
|
||||||
|
if (have_ipv4) {
|
||||||
|
isc_net_disableipv6();
|
||||||
|
have_ipv6 = ISC_FALSE;
|
||||||
|
} else {
|
||||||
|
fatal("can't find IPv4 networking");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ipv6only) {
|
||||||
|
if (have_ipv6) {
|
||||||
|
isc_net_disableipv4();
|
||||||
|
have_ipv4 = ISC_FALSE;
|
||||||
|
} else {
|
||||||
|
fatal("can't find IPv6 networking");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lwresflags = LWRES_CONTEXT_SERVERMODE;
|
lwresflags = LWRES_CONTEXT_SERVERMODE;
|
||||||
if (have_ipv4)
|
if (have_ipv4)
|
||||||
lwresflags |= LWRES_CONTEXT_USEIPV4;
|
lwresflags |= LWRES_CONTEXT_USEIPV4;
|
||||||
|
@@ -59,6 +59,7 @@ static int seen_error = -1;
|
|||||||
static isc_boolean_t list_addresses = ISC_TRUE;
|
static isc_boolean_t list_addresses = ISC_TRUE;
|
||||||
static dns_rdatatype_t list_type = dns_rdatatype_a;
|
static dns_rdatatype_t list_type = dns_rdatatype_a;
|
||||||
static isc_boolean_t printed_server = ISC_FALSE;
|
static isc_boolean_t printed_server = ISC_FALSE;
|
||||||
|
static isc_boolean_t ipv4only = ISC_FALSE, ipv6only = ISC_FALSE;
|
||||||
|
|
||||||
static const char *opcodetext[] = {
|
static const char *opcodetext[] = {
|
||||||
"QUERY",
|
"QUERY",
|
||||||
@@ -628,8 +629,16 @@ pre_parse_args(int argc, char **argv) {
|
|||||||
isc_mem_debugging |= ISC_MEM_DEBUGUSAGE;
|
isc_mem_debugging |= ISC_MEM_DEBUGUSAGE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '4': break;
|
case '4':
|
||||||
case '6': break;
|
if (ipv6only)
|
||||||
|
fatal("only one of -4 and -6 allowed");
|
||||||
|
ipv4only = ISC_TRUE;
|
||||||
|
break;
|
||||||
|
case '6':
|
||||||
|
if (ipv4only)
|
||||||
|
fatal("only one of -4 and -6 allowed");
|
||||||
|
ipv6only = ISC_TRUE;
|
||||||
|
break;
|
||||||
case 'a': break;
|
case 'a': break;
|
||||||
case 'c': break;
|
case 'c': break;
|
||||||
case 'd': break;
|
case 'd': break;
|
||||||
@@ -824,18 +833,10 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
|||||||
/* Handled by pre_parse_args(). */
|
/* Handled by pre_parse_args(). */
|
||||||
break;
|
break;
|
||||||
case '4':
|
case '4':
|
||||||
if (have_ipv4) {
|
/* Handled by pre_parse_args(). */
|
||||||
isc_net_disableipv6();
|
|
||||||
have_ipv6 = ISC_FALSE;
|
|
||||||
} else
|
|
||||||
fatal("can't find IPv4 networking");
|
|
||||||
break;
|
break;
|
||||||
case '6':
|
case '6':
|
||||||
if (have_ipv6) {
|
/* Handled by pre_parse_args(). */
|
||||||
isc_net_disableipv4();
|
|
||||||
have_ipv4 = ISC_FALSE;
|
|
||||||
} else
|
|
||||||
fatal("can't find IPv6 networking");
|
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
lookup->servfail_stops = ISC_TRUE;
|
lookup->servfail_stops = ISC_TRUE;
|
||||||
@@ -895,7 +896,7 @@ main(int argc, char **argv) {
|
|||||||
result = isc_app_start();
|
result = isc_app_start();
|
||||||
check_result(result, "isc_app_start");
|
check_result(result, "isc_app_start");
|
||||||
setup_libs();
|
setup_libs();
|
||||||
setup_system();
|
setup_system(ipv4only, ipv6only);
|
||||||
parse_args(ISC_FALSE, argc, argv);
|
parse_args(ISC_FALSE, argc, argv);
|
||||||
if (keyfile[0] != 0)
|
if (keyfile[0] != 0)
|
||||||
setup_file_key();
|
setup_file_key();
|
||||||
|
@@ -345,7 +345,7 @@ void
|
|||||||
setup_libs(void);
|
setup_libs(void);
|
||||||
|
|
||||||
void
|
void
|
||||||
setup_system(void);
|
setup_system(isc_boolean_t ipv4only, isc_boolean_t ipv6only);
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
parse_uint(isc_uint32_t *uip, const char *value, isc_uint32_t max,
|
parse_uint(isc_uint32_t *uip, const char *value, isc_uint32_t max,
|
||||||
|
@@ -908,7 +908,7 @@ main(int argc, char **argv) {
|
|||||||
setup_libs();
|
setup_libs();
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
|
|
||||||
setup_system();
|
setup_system(ISC_FALSE, ISC_FALSE);
|
||||||
parse_args(argc, argv);
|
parse_args(argc, argv);
|
||||||
if (keyfile[0] != 0)
|
if (keyfile[0] != 0)
|
||||||
setup_file_key();
|
setup_file_key();
|
||||||
|
Reference in New Issue
Block a user