diff options
author | Rob Austein <sra@hactrn.net> | 2010-06-18 04:45:36 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2010-06-18 04:45:36 +0000 |
commit | 51174820fdcdc4e4d35068146b98903a0a63832c (patch) | |
tree | dd4157c08c70b3931eecc0fa35341a881e73e5e4 | |
parent | aa07ae9fa3429fbf12adf155b34a9e64be85a1a1 (diff) |
Cleanup
svn path=/rpkid/rpki/resource_set.py; revision=3291
-rw-r--r-- | rpkid/rpki/resource_set.py | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/rpkid/rpki/resource_set.py b/rpkid/rpki/resource_set.py index 981a9aa2..31d046e9 100644 --- a/rpkid/rpki/resource_set.py +++ b/rpkid/rpki/resource_set.py @@ -534,9 +534,12 @@ class resource_set_ip(resource_set): """ Convert from a resource set to a ROA prefix set. """ + prefix_ranges = [] + for r in self: + r.chop_into_prefixes(prefix_ranges) return self.roa_prefix_set_type([ self.roa_prefix_set_type.prefix_type(r.min, r._prefixlen()) - for r in self.chop_into_prefixes()]) + for r in prefix_ranges]) def to_rfc3779_tuple(self): """ @@ -551,21 +554,6 @@ class resource_set_ip(resource_set): else: return None - def chop_into_prefixes(self): - """ - Chop up a resource_set into ranges that can be represented as - prefixes. Returns a new resource_set object containing ranges - meeting this constraint. - """ - result = [] - for r in self: - r.chop_into_prefixes(result) - # Normal constructor would merge the ranges we just worked so hard - # to separate, so bypass it. - ret = self.__class__() - ret.extend(result) - return ret - class resource_set_ipv4(resource_set_ip): """ IPv4 address resource set. @@ -971,8 +959,8 @@ resource_set_ipv6.roa_prefix_set_type = roa_prefix_set_ipv6 if __name__ == "__main__": - def testchop(v): - return " (%s)" % v.chop_into_prefixes() if isinstance(v, resource_set_ip) else "" + def testprefix(v): + return " (%s)" % v.to_roa_prefix_set() if isinstance(v, resource_set_ip) else "" def test1(t, s1, s2): if isinstance(s1, str) and isinstance(s2, str): @@ -980,8 +968,8 @@ if __name__ == "__main__": print "y: ", s2 r1 = t(s1) r2 = t(s2) - print "x: ", r1, testchop(r1) - print "y: ", r2, testchop(r2) + print "x: ", r1, testprefix(r1) + print "y: ", r2, testprefix(r2) v1 = r1._comm(r2) v2 = r2._comm(r1) assert v1[0] == v2[1] and v1[1] == v2[0] and v1[2] == v2[2] @@ -993,19 +981,19 @@ if __name__ == "__main__": v1 = r1.union(r2) v2 = r2.union(r1) assert v1 == v2 - print "x|y:", v1, testchop(v1) + print "x|y:", v1, testprefix(v1) v1 = r1.difference(r2) v2 = r2.difference(r1) - print "x-y:", v1, testchop(v1) - print "y-x:", v2, testchop(v2) + print "x-y:", v1, testprefix(v1) + print "y-x:", v2, testprefix(v2) v1 = r1.symmetric_difference(r2) v2 = r2.symmetric_difference(r1) assert v1 == v2 - print "x^y:", v1, testchop(v1) + print "x^y:", v1, testprefix(v1) v1 = r1.intersection(r2) v2 = r2.intersection(r1) assert v1 == v2 - print "x&y:", v1, testchop(v1) + print "x&y:", v1, testprefix(v1) def test2(t, s1, s2): print "x: ", s1 |