From 5a8f98041f780c1a9a09a02ea08d3b56a0dc99f3 Mon Sep 17 00:00:00 2001 From: Pavel Patsey Date: Wed, 22 Jan 2025 23:27:47 +0300 Subject: [PATCH] correct mask recalculation when reducing its length --- vpn_manager/cidr4_merge/cidr4_merger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vpn_manager/cidr4_merge/cidr4_merger.py b/vpn_manager/cidr4_merge/cidr4_merger.py index 142d39b..6da4b2d 100644 --- a/vpn_manager/cidr4_merge/cidr4_merger.py +++ b/vpn_manager/cidr4_merge/cidr4_merger.py @@ -32,7 +32,7 @@ def find_parent(a: Node, b: Node) -> Node: mask = ((1 << mask_len) - 1) << (32 - mask_len) while ip_a & mask != ip_b & mask: mask_len -= 1 - mask = ((1 << mask_len) - 1) << (32 - mask_len) + mask = (mask << 1) & ((1 << 32) - 1) ip = ip_a & mask parent_node = ip, mask_len if parent_node == a or parent_node == b: