From 349194f64968fdade05c70db900e8518d56114ad Mon Sep 17 00:00:00 2001 From: Tom Harrison Date: Sat, 25 Aug 2018 14:11:12 +1000 Subject: [max-length] Fix ROA parsing issue The ROA update and generate methods were parsing the ipv4 and ipv6 instance variables as if they were resource sets, rather than ROA prefix sets. This works as expected when max-length is not being used, but when max-length is used, parsing does not succeed and ROAs cannot be generated or updated. Parsing each variable as if it's a ROA prefix set, and then converting the result to a resource set, appears to fix the problem. Signed-off-by: Rob Austein --- rpki/rpkidb/models.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'rpki') diff --git a/rpki/rpkidb/models.py b/rpki/rpkidb/models.py index 7fdb7353..746700cf 100644 --- a/rpki/rpkidb/models.py +++ b/rpki/rpkidb/models.py @@ -2318,8 +2318,8 @@ class ROA(models.Model): logger.debug("%r oversized with respect to CA, regenerating", self) return self.regenerate(publisher = publisher) - v4 = rpki.resource_set.resource_set_ipv4(self.ipv4) - v6 = rpki.resource_set.resource_set_ipv6(self.ipv6) + v4 = rpki.resource_set.roa_prefix_set_ipv4(self.ipv4).to_resource_set() + v6 = rpki.resource_set.roa_prefix_set_ipv6(self.ipv6).to_resource_set() if ee_resources.v4 != v4 or ee_resources.v6 != v6: logger.debug("%r resources do not match EE, regenerating", self) @@ -2353,8 +2353,8 @@ class ROA(models.Model): if self.ipv4 is None and self.ipv6 is None: raise rpki.exceptions.EmptyROAPrefixList - v4 = rpki.resource_set.resource_set_ipv4(self.ipv4) - v6 = rpki.resource_set.resource_set_ipv6(self.ipv6) + v4 = rpki.resource_set.roa_prefix_set_ipv4(self.ipv4).to_resource_set() + v6 = rpki.resource_set.roa_prefix_set_ipv6(self.ipv6).to_resource_set() # http://stackoverflow.com/questions/26270042/how-do-you-catch-this-exception # "Django is amazing when its not terrifying." -- cgit v1.2.3