]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
fixup! rrl: modify KRU api to return maximum final load value docs-develop-rrl-8r8r8r/deployments/3849
authorVladimír Čunát <vladimir.cunat@nic.cz>
Sat, 20 Apr 2024 07:16:29 +0000 (09:16 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Sat, 20 Apr 2024 07:16:35 +0000 (09:16 +0200)
- reordering saves 8 bytes per struct (on typical 64-bit platforms)
- don't assume that *max_load_out is initialized reasonably
  (the doc-comment doesn't suggest that it's needed)

daemon/rrl/kru.inc.c

index bd43cab1eefe2a3111c7bf09bce951949a6cea24..5f630fb78fff9ac242242877cde2a91070e2e0ba 100644 (file)
@@ -167,8 +167,8 @@ struct query_ctx {
        kru_price_t price;
        uint16_t price16, limit16;
        uint16_t id;
-       uint16_t *load;
        uint16_t final_load_value;  // set by kru_limited_update if not blocked
+       uint16_t *load;
 };
 
 /// Phase 1/3 of a query -- hash, prefetch, ctx init. Based on one 16-byte key.
@@ -481,6 +481,7 @@ static uint8_t kru_limited_multi_prefix_or(struct kru *kru, uint32_t time_now, u
        }
 
        if (max_load_out) {
+               *max_load_out = 0;
                for (size_t i = 0; i < queries_cnt; i++) {
                        *max_load_out = MAX(*max_load_out, ctx[i].final_load_value);
                }