Исправлена логика сжатия.

This commit is contained in:
2025-12-05 21:27:00 +10:00
parent 157f334874
commit 4f62c9a051
2 changed files with 42 additions and 14 deletions

View File

@@ -171,12 +171,8 @@ def list_ip(c_list: list = []):
# добавляем IPv4 подсети
for ip_int, mask in sorted(ipv4_list, key=lambda x: x[0]):
Root.insert(net_tree.Net(ip_int, mask, 4))
# считаем статистику
Root.finalize()
# сжатие по CIDR, если ключ сжимать
if compress: Root.collapse()
# получаем результат
ipv4_list = Root.export('route {addr}/{masklen} blackhole;')
# сжатие по CIDR, если ключ сжимать, иначе убираем только родителей, покрываемых детьми
ipv4_list = Root.export_compress('route {addr}/{masklen} blackhole;') if compress else Root.export('route {addr}/{masklen} blackhole;')
else:
ipv4_list:bool=False
@@ -187,12 +183,8 @@ def list_ip(c_list: list = []):
# добавляем IPv6 подсети
for ip_int, mask in sorted(ipv6_list, key=lambda x: x[0]):
Root.insert(net_tree.Net(ip_int, mask, 6))
# считаем статистику
Root.finalize()
# сжатие по CIDR, если ключ сжимать
if compress: Root.collapse()
# получаем результат
ipv6_list = Root.export('route {addr}/{masklen} blackhole;')
# сжатие по CIDR, если ключ сжимать, иначе убираем только родителей, покрываемых детьми
ipv6_list = Root.export_compress('route {addr}/{masklen} blackhole;') if compress else Root.export('route {addr}/{masklen} blackhole;')
else:
ipv6_list:bool=False
# возвращаем 2 списка маршрутов