From 4dffb687f1e9f78d983ae2da059c7d558b24daea Mon Sep 17 00:00:00 2001 From: Igor Putovny <igor.putovny@nic.cz> Date: Wed, 20 Sep 2023 13:05:49 +0200 Subject: [PATCH] Delete trie during aggregator shutdown --- proto/aggregator/aggregator.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/proto/aggregator/aggregator.c b/proto/aggregator/aggregator.c index ac290adf..96cce78b 100644 --- a/proto/aggregator/aggregator.c +++ b/proto/aggregator/aggregator.c @@ -109,7 +109,24 @@ remove_node(struct trie_node *node) } static void +delete_trie(struct trie_node *node) { + assert(node != NULL); + + if (is_leaf(node)) + { + remove_node(node); + return; + } + + if (node->child[0]) + delete_trie(node->child[0]); + + if (node->child[1]) + delete_trie(node->child[1]); + + assert(is_leaf(node)); + delete_trie(node); } /* @@ -1242,6 +1259,9 @@ aggregator_shutdown(struct proto *P) } HASH_WALK_END; + delete_trie(p->root); + p->root = NULL; + return PS_DOWN; }