daemon: refactored CoreInterface.addrlist storing strings into CoreInterface.ip4s and ip6s, stored as netaddr.IPNetwork objects
This commit is contained in:
parent
ca2b1c9e4c
commit
d88f3a2535
20 changed files with 209 additions and 262 deletions
|
@ -3,7 +3,6 @@ import time
|
|||
from typing import Any, Dict, List, Tuple, Type, Union
|
||||
|
||||
import grpc
|
||||
import netaddr
|
||||
from grpc import ServicerContext
|
||||
|
||||
from core import utils
|
||||
|
@ -447,18 +446,16 @@ def iface_to_proto(iface: CoreInterface) -> core_pb2.Interface:
|
|||
net_id = iface.net.id
|
||||
ip4 = None
|
||||
ip4_mask = None
|
||||
ip4_net = iface.get_ip4()
|
||||
if ip4_net:
|
||||
ip4 = str(ip4_net.ip)
|
||||
ip4_mask = ip4_net.prefixlen
|
||||
ip6 = None
|
||||
ip6_mask = None
|
||||
for addr in iface.addrlist:
|
||||
network = netaddr.IPNetwork(addr)
|
||||
mask = network.prefixlen
|
||||
ip = str(network.ip)
|
||||
if netaddr.valid_ipv4(ip) and not ip4:
|
||||
ip4 = ip
|
||||
ip4_mask = mask
|
||||
elif netaddr.valid_ipv6(ip) and not ip6:
|
||||
ip6 = ip
|
||||
ip6_mask = mask
|
||||
ip6_net = iface.get_ip6()
|
||||
if ip6_net:
|
||||
ip6 = str(ip6_net.ip)
|
||||
ip6_mask = ip6_net.prefixlen
|
||||
return core_pb2.Interface(
|
||||
id=iface.node_id,
|
||||
net_id=net_id,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue