Cleanup fctx->finds before sending 'final' query after qname minimization.

At the beginning of qname minimization we get fctx->finds filled with what's
in the cache at this point, in worst case root servers. After doing full
run querying for NSes at different levels we need to clean it and refill
it with proper values from cache.
This commit is contained in:
Witold Kręcicki
2018-11-13 19:02:04 +00:00
parent 1802f71ed1
commit 5b699987eb
2 changed files with 12 additions and 0 deletions
+3
View File
@@ -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.
+9
View File
@@ -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: