diff --git a/CHANGES b/CHANGES index 93a7759d44..cf610e3a33 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +5075. [bug] Refresh nameservers from cache when sending final + query in qname minimization. [GL #16] + 5074. [cleanup] Remove vector socket functions - isc_socket_recvv(), isc_socket_sendtov(), isc_socket_sendtov2(), isc_socket_sendv() - in order to simplify socket code. diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 51b7f18592..b424e77cf8 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -4143,6 +4143,15 @@ resume_qmin(isc_task_t *task, isc_event_t *event) { fctx->ns_ttl = fctx->nameservers.ttl; fctx->ns_ttl_ok = true; fctx_minimize_qname(fctx); + if (!fctx->minimized) { + /* + * We have finished minimizing, but fctx->finds was filled at + * the beginning of the run - now we need to clear it before + * sending the final query to use proper nameservers. + */ + fctx_cancelqueries(fctx, false, false); + fctx_cleanupall(fctx); + } fctx_try(fctx, true, false); cleanup: