mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Exempt prefetches from the fetches-per-server quota
Give prefetches a free pass through the quota so that the cache
entries for popular zones could be updated successfully even if the
quota for is already reached.
(cherry picked from commit c7e8b7cf63)
This commit is contained in:
parent
d96fca478a
commit
c90aa16929
3 changed files with 17 additions and 2 deletions
|
|
@ -1481,7 +1481,9 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_adbname_t *name) {
|
|||
dns_adbaddrinfo_t *addrinfo = NULL;
|
||||
entry = namehook->entry;
|
||||
|
||||
if (adbentry_overquota(entry)) {
|
||||
if ((find->options & DNS_ADBFIND_QUOTAEXEMPT) == 0 &&
|
||||
adbentry_overquota(entry))
|
||||
{
|
||||
find->options |= DNS_ADBFIND_OVERQUOTA;
|
||||
goto nextv4;
|
||||
}
|
||||
|
|
@ -1503,7 +1505,9 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_adbname_t *name) {
|
|||
dns_adbaddrinfo_t *addrinfo = NULL;
|
||||
entry = namehook->entry;
|
||||
|
||||
if (adbentry_overquota(entry)) {
|
||||
if ((find->options & DNS_ADBFIND_QUOTAEXEMPT) == 0 &&
|
||||
adbentry_overquota(entry))
|
||||
{
|
||||
find->options |= DNS_ADBFIND_OVERQUOTA;
|
||||
goto nextv6;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,6 +179,10 @@ struct dns_adbfind {
|
|||
* This is useful for reestablishing glue that has expired.
|
||||
*/
|
||||
#define DNS_ADBFIND_STARTATZONE 0x00000020
|
||||
/*%
|
||||
* Fetches will be exempted from the quota.
|
||||
*/
|
||||
#define DNS_ADBFIND_QUOTAEXEMPT 0x00000040
|
||||
/*%
|
||||
* The server's fetch quota is exceeded; it will be treated as
|
||||
* lame for this query.
|
||||
|
|
|
|||
|
|
@ -3263,6 +3263,13 @@ findname(fetchctx_t *fctx, const dns_name_t *name, in_port_t port,
|
|||
options |= DNS_ADBFIND_STARTATZONE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Exempt prefetches from ADB quota.
|
||||
*/
|
||||
if ((fctx->options & DNS_FETCHOPT_PREFETCH) != 0) {
|
||||
options |= DNS_ADBFIND_QUOTAEXEMPT;
|
||||
}
|
||||
|
||||
/*
|
||||
* See what we know about this address.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue