mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
Make host -C and dig +nss actually work.
This commit is contained in:
@@ -15,7 +15,7 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dig.c,v 1.49 2000/06/22 17:23:48 tale Exp $ */
|
/* $Id: dig.c,v 1.50 2000/06/22 22:37:29 mws Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -691,9 +691,9 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
|||||||
} else if (strncmp(rv[0], "+ns", 3) == 0) {
|
} else if (strncmp(rv[0], "+ns", 3) == 0) {
|
||||||
if (have_host) {
|
if (have_host) {
|
||||||
lookup->ns_search_only = ISC_TRUE;
|
lookup->ns_search_only = ISC_TRUE;
|
||||||
|
lookup->trace_root = ISC_TRUE;
|
||||||
lookup->recurse = ISC_FALSE;
|
lookup->recurse = ISC_FALSE;
|
||||||
lookup->identify = ISC_TRUE;
|
lookup->identify = ISC_TRUE;
|
||||||
lookup->trace = ISC_TRUE;
|
|
||||||
lookup->stats = ISC_FALSE;
|
lookup->stats = ISC_FALSE;
|
||||||
if (!forcecomment)
|
if (!forcecomment)
|
||||||
lookup->comments = ISC_FALSE;
|
lookup->comments = ISC_FALSE;
|
||||||
@@ -1010,8 +1010,8 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
|||||||
lookup->origin = NULL;
|
lookup->origin = NULL;
|
||||||
lookup->querysig = NULL;
|
lookup->querysig = NULL;
|
||||||
lookup->use_my_server_list = ISC_FALSE;
|
lookup->use_my_server_list = ISC_FALSE;
|
||||||
lookup->trace = ISC_TF(trace || ns_search_only);
|
lookup->trace = trace;
|
||||||
lookup->trace_root = trace;
|
lookup->trace_root = ISC_TF(trace || ns_search_only);
|
||||||
lookup->ns_search_only = ns_search_only;
|
lookup->ns_search_only = ns_search_only;
|
||||||
lookup->doing_xfr = ISC_FALSE;
|
lookup->doing_xfr = ISC_FALSE;
|
||||||
lookup->ixfr_serial = 0;
|
lookup->ixfr_serial = 0;
|
||||||
@@ -1078,8 +1078,8 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
|||||||
lookup->doing_xfr = ISC_FALSE;
|
lookup->doing_xfr = ISC_FALSE;
|
||||||
lookup->ixfr_serial = 0;
|
lookup->ixfr_serial = 0;
|
||||||
lookup->defname = ISC_FALSE;
|
lookup->defname = ISC_FALSE;
|
||||||
lookup->trace = ISC_TF(trace || ns_search_only);
|
lookup->trace_root = ISC_TF(trace || ns_search_only);
|
||||||
lookup->trace_root = trace;
|
lookup->trace = trace;
|
||||||
lookup->ns_search_only = ns_search_only;
|
lookup->ns_search_only = ns_search_only;
|
||||||
lookup->identify = identify;
|
lookup->identify = identify;
|
||||||
lookup->recurse = recurse;
|
lookup->recurse = recurse;
|
||||||
@@ -1155,8 +1155,8 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
|||||||
lookup->doing_xfr = ISC_FALSE;
|
lookup->doing_xfr = ISC_FALSE;
|
||||||
lookup->ixfr_serial = 0;
|
lookup->ixfr_serial = 0;
|
||||||
lookup->defname = ISC_FALSE;
|
lookup->defname = ISC_FALSE;
|
||||||
lookup->trace = ISC_TF(trace || ns_search_only);
|
lookup->trace_root = ISC_TF(trace || ns_search_only);
|
||||||
lookup->trace_root = trace;
|
lookup->trace = trace;
|
||||||
lookup->ns_search_only = ns_search_only;
|
lookup->ns_search_only = ns_search_only;
|
||||||
lookup->identify = identify;
|
lookup->identify = identify;
|
||||||
lookup->recurse = recurse;
|
lookup->recurse = recurse;
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dighost.c,v 1.55 2000/06/21 17:48:27 mws Exp $ */
|
/* $Id: dighost.c,v 1.56 2000/06/22 22:37:30 mws Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Notice to programmers: Do not use this code as an example of how to
|
* Notice to programmers: Do not use this code as an example of how to
|
||||||
@@ -725,7 +725,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query,
|
|||||||
debug ("Firstname returned %s",
|
debug ("Firstname returned %s",
|
||||||
isc_result_totext(result));
|
isc_result_totext(result));
|
||||||
if ((section == DNS_SECTION_ANSWER) &&
|
if ((section == DNS_SECTION_ANSWER) &&
|
||||||
query->lookup->trace)
|
(query->lookup->trace || query->lookup->ns_search_only))
|
||||||
followup_lookup (msg, query, DNS_SECTION_AUTHORITY);
|
followup_lookup (msg, query, DNS_SECTION_AUTHORITY);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -776,13 +776,20 @@ followup_lookup(dns_message_t *msg, dig_query_t *query,
|
|||||||
lookup->use_my_server_list =
|
lookup->use_my_server_list =
|
||||||
ISC_TRUE;
|
ISC_TRUE;
|
||||||
if (section ==
|
if (section ==
|
||||||
DNS_SECTION_ANSWER)
|
DNS_SECTION_ANSWER) {
|
||||||
lookup->trace =
|
lookup->trace =
|
||||||
ISC_FALSE;
|
ISC_FALSE;
|
||||||
else
|
lookup->ns_search_only =
|
||||||
lookup->trace =
|
ISC_FALSE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lookup->trace =
|
||||||
query->
|
query->
|
||||||
lookup->trace;
|
lookup->trace;
|
||||||
|
lookup->ns_search_only =
|
||||||
|
query->
|
||||||
|
lookup->ns_search_only;
|
||||||
|
}
|
||||||
lookup->trace_root = ISC_FALSE;
|
lookup->trace_root = ISC_FALSE;
|
||||||
ISC_LIST_INIT(lookup->
|
ISC_LIST_INIT(lookup->
|
||||||
my_server_list);
|
my_server_list);
|
||||||
@@ -813,7 +820,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((lookup == NULL) && (section == DNS_SECTION_ANSWER) &&
|
if ((lookup == NULL) && (section == DNS_SECTION_ANSWER) &&
|
||||||
query->lookup->trace)
|
(query->lookup->trace || query->lookup->ns_search_only))
|
||||||
followup_lookup(msg, query, DNS_SECTION_AUTHORITY);
|
followup_lookup(msg, query, DNS_SECTION_AUTHORITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1037,7 +1044,7 @@ setup_lookup(dig_lookup_t *lookup) {
|
|||||||
* If this is a trace request, completely disallow recursion, since
|
* If this is a trace request, completely disallow recursion, since
|
||||||
* it's meaningless for traces.
|
* it's meaningless for traces.
|
||||||
*/
|
*/
|
||||||
if (lookup->recurse && !lookup->trace) {
|
if (lookup->recurse && !lookup->trace && !lookup->ns_search_only) {
|
||||||
debug ("Recursive query");
|
debug ("Recursive query");
|
||||||
lookup->sendmsg->flags |= DNS_MESSAGEFLAG_RD;
|
lookup->sendmsg->flags |= DNS_MESSAGEFLAG_RD;
|
||||||
}
|
}
|
||||||
@@ -1061,6 +1068,7 @@ setup_lookup(dig_lookup_t *lookup) {
|
|||||||
DNS_SECTION_QUESTION);
|
DNS_SECTION_QUESTION);
|
||||||
|
|
||||||
if (lookup->trace_root) {
|
if (lookup->trace_root) {
|
||||||
|
debug("Doing trace_root");
|
||||||
tr.base="SOA";
|
tr.base="SOA";
|
||||||
tr.length=3;
|
tr.length=3;
|
||||||
} else {
|
} else {
|
||||||
@@ -1776,12 +1784,14 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
|||||||
if (query->lookup->xfr_q == NULL)
|
if (query->lookup->xfr_q == NULL)
|
||||||
query->lookup->xfr_q = query;
|
query->lookup->xfr_q = query;
|
||||||
if (query->lookup->xfr_q == query) {
|
if (query->lookup->xfr_q == query) {
|
||||||
if (query->lookup->trace) {
|
if ((query->lookup->trace)||
|
||||||
if (show_details ||
|
(query->lookup->ns_search_only)) {
|
||||||
|
debug ("In TRACE code");
|
||||||
|
if ((show_details ||
|
||||||
((dns_message_firstname(msg,
|
((dns_message_firstname(msg,
|
||||||
DNS_SECTION_ANSWER)
|
DNS_SECTION_ANSWER)
|
||||||
== ISC_R_SUCCESS) &&
|
== ISC_R_SUCCESS))) &&
|
||||||
!query->lookup->trace_root)) {
|
!query->lookup->trace_root ) {
|
||||||
printmessage(query, msg, ISC_TRUE);
|
printmessage(query, msg, ISC_TRUE);
|
||||||
}
|
}
|
||||||
if ((msg->rcode != 0) &&
|
if ((msg->rcode != 0) &&
|
||||||
@@ -1835,8 +1845,16 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
|||||||
&ab);
|
&ab);
|
||||||
check_result(result, "isc_sockaddr_totext");
|
check_result(result, "isc_sockaddr_totext");
|
||||||
isc_buffer_usedregion(&ab, &r);
|
isc_buffer_usedregion(&ab, &r);
|
||||||
received(b->used, r.length, (char *)r.base,
|
if ((( dns_message_firstname(msg,
|
||||||
query);
|
DNS_SECTION_ANSWER)
|
||||||
|
== ISC_R_SUCCESS) &&
|
||||||
|
query->lookup->ns_search_only &&
|
||||||
|
!query->lookup->trace_root) ||
|
||||||
|
query->lookup->trace) {
|
||||||
|
received(b->used, r.length,
|
||||||
|
(char *)r.base,
|
||||||
|
query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
query->working = ISC_FALSE;
|
query->working = ISC_FALSE;
|
||||||
query->lookup->pending = ISC_FALSE;
|
query->lookup->pending = ISC_FALSE;
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: host.c,v 1.28 2000/06/21 17:48:29 mws Exp $ */
|
/* $Id: host.c,v 1.29 2000/06/22 22:37:31 mws Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -670,8 +670,8 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
|||||||
lookup->retries = tries;
|
lookup->retries = tries;
|
||||||
lookup->udpsize = 0;
|
lookup->udpsize = 0;
|
||||||
lookup->nsfound = 0;
|
lookup->nsfound = 0;
|
||||||
lookup->trace = showallsoa;
|
lookup->trace = ISC_FALSE;
|
||||||
lookup->trace_root = ISC_FALSE;
|
lookup->trace_root = showallsoa;
|
||||||
lookup->tcp_mode = tcpmode;
|
lookup->tcp_mode = tcpmode;
|
||||||
lookup->new_search = ISC_TRUE;
|
lookup->new_search = ISC_TRUE;
|
||||||
lookup->aaonly = ISC_FALSE;
|
lookup->aaonly = ISC_FALSE;
|
||||||
|
Reference in New Issue
Block a user