}
/*
- * 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");