From a92139f150a1028b06ac2381bd2cee10f3dcb172 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 21 Feb 2024 14:48:08 +0000 Subject: [PATCH] network-tree: Use the raw prefix to place networks onto the tree Signed-off-by: Michael Tremer --- src/libloc/network.h | 1 + src/network-tree.c | 4 ++-- src/network.c | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libloc/network.h b/src/libloc/network.h index 51901ba..62334ac 100644 --- a/src/libloc/network.h +++ b/src/libloc/network.h @@ -69,6 +69,7 @@ struct loc_network_list* loc_network_exclude_list( #ifdef LIBLOC_PRIVATE int loc_network_properties_cmp(struct loc_network* self, struct loc_network* other); +unsigned int loc_network_raw_prefix(struct loc_network* network); int loc_network_to_database_v1(struct loc_network* network, struct loc_database_network_v1* dbobj); int loc_network_new_from_database_v1(struct loc_ctx* ctx, struct loc_network** network, diff --git a/src/network-tree.c b/src/network-tree.c index e6a4f85..e26b125 100644 --- a/src/network-tree.c +++ b/src/network-tree.c @@ -200,7 +200,7 @@ int loc_network_tree_add_network(struct loc_network_tree* tree, struct loc_netwo DEBUG(tree->ctx, "Adding network %p to tree %p\n", network, tree); const struct in6_addr* first_address = loc_network_get_first_address(network); - const unsigned int prefix = loc_network_prefix(network); + const unsigned int prefix = loc_network_raw_prefix(network); struct loc_network_tree_node* node = loc_network_tree_get_path(tree, first_address, prefix); if (!node) { @@ -228,7 +228,7 @@ static int loc_network_tree_delete_network( DEBUG(tree->ctx, "Deleting network %s from tree...\n", loc_network_str(network)); const struct in6_addr* first_address = loc_network_get_first_address(network); - const unsigned int prefix = loc_network_prefix(network); + const unsigned int prefix = loc_network_raw_prefix(network); node = loc_network_tree_get_path(tree, first_address, prefix); if (!node) { diff --git a/src/network.c b/src/network.c index fc76e59..11fe670 100644 --- a/src/network.c +++ b/src/network.c @@ -162,6 +162,10 @@ LOC_EXPORT unsigned int loc_network_prefix(struct loc_network* network) { return 0; } +unsigned int loc_network_raw_prefix(struct loc_network* network) { + return network->prefix; +} + LOC_EXPORT const struct in6_addr* loc_network_get_first_address(struct loc_network* network) { return &network->first_address; } -- 2.39.2