mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
lib/dns/resolver.c: Call dns_adb_endudpfetch() only for UDP queries
The dns_adb_beginudpfetch() is called only for UDP queries, but the dns_adb_endudpfetch() is called for all queries, including TCP. This messages the quota counting in adb.c.
This commit is contained in:
@@ -1278,7 +1278,10 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp,
|
|||||||
|
|
||||||
dns_adb_adjustsrtt(fctx->adb, query->addrinfo, rtt, factor);
|
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.
|
* 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))
|
if (dns_adbentry_overquota(addrinfo->entry))
|
||||||
goto cleanup_dispatch;
|
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);
|
dns_adb_beginudpfetch(fctx->adb, addrinfo);
|
||||||
|
|
||||||
result = resquery_send(query);
|
result = resquery_send(query);
|
||||||
|
Reference in New Issue
Block a user