aboutsummaryrefslogtreecommitdiff
path: root/portal-gui/rpkigui/myrpki/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'portal-gui/rpkigui/myrpki/misc.py')
-rw-r--r--portal-gui/rpkigui/myrpki/misc.py21
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