From 5a9b5e54bdd3bc353c2f451a8599ae7885083c27 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 7 May 2024 11:03:12 +0200 Subject: [PATCH] fixup! rrl: truncating answers when close to limit, dropping over limit --- daemon/rrl/api.c | 14 +++++++------- .../datamodel/rate_limiting_schema.py | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/daemon/rrl/api.c b/daemon/rrl/api.c index 5aa729e61..4cccdbfde 100644 --- a/daemon/rrl/api.c +++ b/daemon/rrl/api.c @@ -183,14 +183,14 @@ bool kr_rrl_request_begin(struct kr_request *req) } if (!limited) return false; - knot_pkt_t *answer = kr_request_ensure_answer(req); - if (!answer) { // something bad; TODO: perhaps improve recovery from this - kr_assert(false); - return true; - } - // at this point the packet should be pretty clear - if (limited == 1) { + knot_pkt_t *answer = kr_request_ensure_answer(req); + if (!answer) { // something bad; TODO: perhaps improve recovery from this + kr_assert(false); + return true; + } + // at this point the packet should be pretty clear + // TC=1. knot_wire_set_tc(answer->wire); knot_wire_clear_ad(answer->wire); diff --git a/manager/knot_resolver_manager/datamodel/rate_limiting_schema.py b/manager/knot_resolver_manager/datamodel/rate_limiting_schema.py index f2b99f441..4733223fa 100644 --- a/manager/knot_resolver_manager/datamodel/rate_limiting_schema.py +++ b/manager/knot_resolver_manager/datamodel/rate_limiting_schema.py @@ -1,5 +1,5 @@ -from knot_resolver_manager.utils.modeling import ConfigSchema from knot_resolver_manager.datamodel.types import Percent +from knot_resolver_manager.utils.modeling import ConfigSchema class RateLimitingSchema(ConfigSchema): @@ -16,7 +16,7 @@ class RateLimitingSchema(ConfigSchema): capacity: int = 524288 rate_limit: int instant_limit: int = 50 - tc_limit_perc: Percent = Percent(90); + tc_limit_perc: Percent = Percent(90) def _validate(self) -> None: max_instant_limit = int(2**32 / 768 - 1) -- 2.47.2