From: Aram Sargsyan Date: Fri, 7 Jun 2024 16:19:40 +0000 (+0000) Subject: Exempt prefetches from the fetches-per-zone quota X-Git-Tag: v9.21.1~12^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cada2de31f91d6b2c8986b8147c56cc5f355794f;p=thirdparty%2Fbind9.git 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. --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index ee0ca2ee2de..b1c98f2faa8 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -4661,13 +4661,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");