diff --git a/CHANGES b/CHANGES index af2d722f19..21505bbaad 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,9 @@ 1353. [contrib] sdb/ldap to version 0.9. +1352. [bug] dig, host, nslookup when falling back to TCP use the + current search entry (if any). [RT #3374] + 1350. [bug] dns_name_fromtext() failed to handle too many labels gracefully. diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index b7fff5d187..c54a73f3b4 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dighost.c,v 1.221.2.13 2002/07/10 04:44:50 marka Exp $ */ +/* $Id: dighost.c,v 1.221.2.14 2002/08/06 02:40:11 marka Exp $ */ /* * Notice to programmers: Do not use this code as an example of how to @@ -1664,7 +1664,7 @@ send_udp(dig_query_t *query) { */ static void connect_timeout(isc_task_t *task, isc_event_t *event) { - dig_lookup_t *l=NULL; + dig_lookup_t *l=NULL, *n; dig_query_t *query=NULL, *cq; UNUSED(task); @@ -1700,7 +1700,8 @@ connect_timeout(isc_task_t *task, isc_event_t *event) { debug("making new TCP request, %d tries left", l->retries); l->retries--; - requeue_lookup(l, ISC_TRUE); + n = requeue_lookup(l, ISC_TRUE); + n->origin = query->lookup->origin; cancel_lookup(l); } } else { @@ -2272,6 +2273,7 @@ recv_done(isc_task_t *task, isc_event_t *event) { printf(";; Truncated, retrying in TCP mode.\n"); n = requeue_lookup(l, ISC_TRUE); n->tcp_mode = ISC_TRUE; + n->origin = query->lookup->origin; dns_message_destroy(&msg); isc_event_free(&event); clear_query(query);