]> git.ipfire.org Git - people/ms/libloc.git/commitdiff
network-tree: Use the raw prefix to place networks onto the tree
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 21 Feb 2024 14:48:08 +0000 (14:48 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 21 Feb 2024 14:48:08 +0000 (14:48 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libloc/network.h
src/network-tree.c
src/network.c

index 51901ba44fcc0c23ed021845ff7688b7c2b53103..62334acd3999d0274db2ef58d40ce2caa49d7c8c 100644 (file)
@@ -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,
index e6a4f85f5007dd96728956f9f60b6714864d1349..e26b1257ce1bff33257cc86de6e3487c87782667 100644 (file)
@@ -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) {
index fc76e59af75eee4d8a664740e34a206b0ef5b01e..11fe670e235b074f9a4aab7a9e16cee4687b3355 100644 (file)
@@ -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;
 }