From 694bc50273ddc01c571dd917415d24b42ca39de8 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Wed, 4 May 2022 17:27:56 -0700 Subject: [PATCH] Fix the fetches-per-server quota calculation Since commit bad5a523c2e, when the fetches-per-server quota was increased or decreased, instead of the value being set to the newly calculated quota, it was set to the *minimum* of the new quota or 1 - which effectively meant it was always set to 1. it should instead have been the maximum, to prevent the value from ever dropping to zero. --- lib/dns/adb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/dns/adb.c b/lib/dns/adb.c index 2cf2e85dcd..5c5d1d714e 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -3565,7 +3565,7 @@ maybe_adjust_quota(dns_adb_t *adb, dns_adbaddrinfo_t *addr, bool timeout) { uint_fast32_t new_quota = adb->quota * quota_adj[--addr->entry->mode] / 10000; atomic_store_release(&addr->entry->quota, - ISC_MIN(1, new_quota)); + ISC_MAX(1, new_quota)); log_quota(addr->entry, "atr %0.2f, quota increased to %" PRIuFAST32, addr->entry->atr, new_quota); @@ -3575,7 +3575,7 @@ maybe_adjust_quota(dns_adb_t *adb, dns_adbaddrinfo_t *addr, bool timeout) { uint_fast32_t new_quota = adb->quota * quota_adj[++addr->entry->mode] / 10000; atomic_store_release(&addr->entry->quota, - ISC_MIN(1, new_quota)); + ISC_MAX(1, new_quota)); log_quota(addr->entry, "atr %0.2f, quota decreased to %" PRIuFAST32, addr->entry->atr, new_quota);