From 770ba2f6b7958dab863fc3d311498ef4de1fb206 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Wed, 28 Nov 2012 01:17:25 +0000 Subject: Teach resource_range_ip.parse_str() to autodetect IP version. Closes #338. svn path=/trunk/; revision=4921 --- rpkid/rpki/resource_set.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'rpkid/rpki/resource_set.py') diff --git a/rpkid/rpki/resource_set.py b/rpkid/rpki/resource_set.py index 27f6df6e..519af61e 100644 --- a/rpkid/rpki/resource_set.py +++ b/rpkid/rpki/resource_set.py @@ -188,10 +188,15 @@ class resource_range_ip(resource_range): """ r = re_address_range.match(x) if r: - return cls(rpki.POW.IPAddress(r.group(1)), rpki.POW.IPAddress(r.group(2))) + return cls.from_strings(r.group(1), r.group(2)) r = re_prefix.match(x) if r: - return cls.make_prefix(rpki.POW.IPAddress(r.group(1)), int(r.group(2))) + a = rpki.POW.IPAddress(r.group(1)) + if cls is resource_range_ip and a.version == 4: + cls = resource_range_ipv4 + if cls is resource_range_ip and a.version == 6: + cls = resource_range_ipv6 + return cls.make_prefix(a, int(r.group(2))) raise rpki.exceptions.BadIPResource, 'Bad IP resource "%s"' % (x) @classmethod -- cgit v1.2.3