Commit 216800aeaf for bind
commit 216800aeaf98641e218069ab1980f6a40f77f1d6
Author: Alessio Podda <alessio@isc.org>
Date: Wed Oct 14 17:42:33 2026 +0200
Remove name argument from CHECK_RRL_RATE
The name argument in check.c:CHECK_RRL_RATE was only used for logging,
and can be derived from the clause argument.
diff --git a/lib/isccfg/check.c b/lib/isccfg/check.c
index 30087e0d50..6beb56bda9 100644
--- a/lib/isccfg/check.c
+++ b/lib/isccfg/check.c
@@ -677,15 +677,21 @@ check_dns64(cfg_aclconfctx_t *aclctx, const cfg_obj_t *voptions,
} \
} while (0)
-#define CHECK_RRL_RATE(rate, def, max_rate, clause, name) \
- do { \
- obj = NULL; \
- mresult = cfg_map_get(map, clause, &obj); \
- if (mresult == ISC_R_SUCCESS) { \
- rate = cfg_obj_asuint32(obj); \
- CHECK_RRL(rate <= max_rate, name " %d > %d", rate, \
- max_rate); \
- } \
+#define CHECK_RRL_RATE(rate, def, max_rate, clause) \
+ do { \
+ obj = NULL; \
+ mresult = cfg_map_get(map, clause, &obj); \
+ if (mresult == ISC_R_SUCCESS) { \
+ rate = cfg_obj_asuint32(obj); \
+ if (!(rate <= max_rate)) { \
+ cfg_obj_log(obj, ISC_LOG_ERROR, "%s %d > %d", \
+ cfg_clause_as_string[clause], \
+ rate, max_rate); \
+ if (result == ISC_R_SUCCESS) { \
+ result = ISC_R_RANGE; \
+ } \
+ } \
+ } \
} while (0)
static isc_result_t
@@ -739,25 +745,21 @@ check_ratelimit(cfg_aclconfctx_t *aclctx, const cfg_obj_t *voptions,
}
CHECK_RRL_RATE(responses_per_second, 0, DNS_RRL_MAX_RATE,
- CFG_CLAUSE_RESPONSES_PER_SECOND, "responses-per-second");
+ CFG_CLAUSE_RESPONSES_PER_SECOND);
CHECK_RRL_RATE(referrals_per_second, responses_per_second,
- DNS_RRL_MAX_RATE, CFG_CLAUSE_REFERRALS_PER_SECOND,
- "referrals-per-second");
+ DNS_RRL_MAX_RATE, CFG_CLAUSE_REFERRALS_PER_SECOND);
CHECK_RRL_RATE(nodata_per_second, responses_per_second,
- DNS_RRL_MAX_RATE, CFG_CLAUSE_NODATA_PER_SECOND,
- "nodata-per-second");
+ DNS_RRL_MAX_RATE, CFG_CLAUSE_NODATA_PER_SECOND);
CHECK_RRL_RATE(nxdomains_per_second, responses_per_second,
- DNS_RRL_MAX_RATE, CFG_CLAUSE_NXDOMAINS_PER_SECOND,
- "nxdomains-per-second");
+ DNS_RRL_MAX_RATE, CFG_CLAUSE_NXDOMAINS_PER_SECOND);
CHECK_RRL_RATE(errors_per_second, responses_per_second,
- DNS_RRL_MAX_RATE, CFG_CLAUSE_ERRORS_PER_SECOND,
- "errors-per-second");
+ DNS_RRL_MAX_RATE, CFG_CLAUSE_ERRORS_PER_SECOND);
CHECK_RRL_RATE(all_per_second, 0, DNS_RRL_MAX_RATE,
- CFG_CLAUSE_ALL_PER_SECOND, "all-per-second");
+ CFG_CLAUSE_ALL_PER_SECOND);
- CHECK_RRL_RATE(slip, 2, DNS_RRL_MAX_SLIP, CFG_CLAUSE_SLIP, "slip");
+ CHECK_RRL_RATE(slip, 2, DNS_RRL_MAX_SLIP, CFG_CLAUSE_SLIP);
obj = NULL;
mresult = cfg_map_get(map, CFG_CLAUSE_WINDOW, &obj);