Exempt prefetches from the fetches-per-zone quota

Give prefetches a free pass through the quota so that the cache entry
for a popular zone could be updated successfully even if the quota for
it is already reached.

(cherry picked from commit cada2de31f)
This commit is contained in:
Aram Sargsyan 2024-06-07 16:19:40 +00:00 committed by Arаm Sаrgsyаn
parent fad5d1ada5
commit d96fca478a

View file

@ -4667,13 +4667,18 @@ fctx_create(dns_resolver_t *res, isc_loop_t *loop, const dns_name_t *name,
}
/*
* Are there too many simultaneous queries for this domain?
* Exempt prefetch queries from the fetches-per-zone quota check
*/
result = fcount_incr(fctx, false);
if (result != ISC_R_SUCCESS) {
result = fctx->res->quotaresp[dns_quotatype_zone];
inc_stats(res, dns_resstatscounter_zonequota);
goto cleanup_nameservers;
if ((fctx->options & DNS_FETCHOPT_PREFETCH) == 0) {
/*
* Are there too many simultaneous queries for this domain?
*/
result = fcount_incr(fctx, false);
if (result != ISC_R_SUCCESS) {
result = fctx->res->quotaresp[dns_quotatype_zone];
inc_stats(res, dns_resstatscounter_zonequota);
goto cleanup_nameservers;
}
}
log_ns_ttl(fctx, "fctx_create");