diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 70bfa2232a..a1fca4701d 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -1278,7 +1278,10 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, dns_adb_adjustsrtt(fctx->adb, query->addrinfo, rtt, factor); } - dns_adb_endudpfetch(fctx->adb, query->addrinfo); + if ((query->options & DNS_FETCHOPT_TCP) == 0) { + /* Inform the ADB that we're ending a UDP fetch */ + dns_adb_endudpfetch(fctx->adb, query->addrinfo); + } /* * Age RTTs of servers not tried. @@ -2136,7 +2139,7 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, if (dns_adbentry_overquota(addrinfo->entry)) goto cleanup_dispatch; - /* Inform the ADB that we're starting a fetch */ + /* Inform the ADB that we're starting a UDP fetch */ dns_adb_beginudpfetch(fctx->adb, addrinfo); result = resquery_send(query);