diff options
Diffstat (limited to 'portal-gui/rpkigui/myrpki/misc.py')
-rw-r--r-- | portal-gui/rpkigui/myrpki/misc.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/portal-gui/rpkigui/myrpki/misc.py b/portal-gui/rpkigui/myrpki/misc.py index d8881694..4e0970a6 100644 --- a/portal-gui/rpkigui/myrpki/misc.py +++ b/portal-gui/rpkigui/myrpki/misc.py @@ -4,12 +4,23 @@ import socket import rpki.resource_set import rpki.ipaddrs -def str_to_range(lo, hi): - """Convert IP address string to resourcce_range_ip.""" +def str_to_addr(s): + '''Convert an IP address string to either a v4addr or v6addr.''' + if isinstance(s, unicode): + s = s.encode() # v{4,6}addr require plain string try: - v = rpki.resource_set.resource_range_ipv4(rpki.ipaddrs.v4addr(str(lo)), rpki.ipaddrs.v4addr(str(hi))) + return rpki.ipaddrs.v4addr(s) except socket.error: - v = rpki.resource_set.resource_range_ipv6(rpki.ipaddrs.v6addr(str(lo)), rpki.ipaddrs.v6addr(str(hi))) - return v + return rpki.ipaddrs.v6addr(s) + +def str_to_range(lo, hi): + """Convert IP address strings to resourcce_range_ip.""" + x = str_to_addr(lo) + y = str_to_addr(hi) + assert type(x) == type(y) + if isinstance(x, rpki.ipaddrs.v4addr): + return rpki.resource_set.resource_range_ipv4(x, y) + else: + return rpki.resource_set.resource_range_ipv6(x, y) # vim:sw=4 ts=8 expandtab |