diff options
author | Tom Harrison <tomh@apnic.net> | 2018-08-25 14:11:12 +1000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2018-08-26 14:54:34 -0400 |
commit | 349194f64968fdade05c70db900e8518d56114ad (patch) | |
tree | 366fd036bc65e29a8fee63c29ea5f836e0f8fbc9 /rpki/rpkidb | |
parent | 1acf23f78c839e16998ae391811b1152709b8377 (diff) |
[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 <sra@hactrn.net>
Diffstat (limited to 'rpki/rpkidb')
-rw-r--r-- | rpki/rpkidb/models.py | 8 |
1 files changed, 4 insertions, 4 deletions
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." |