diff options
-rw-r--r-- | rpkid/rpki/gui/app/forms.py | 7 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/glue.py | 8 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/views.py | 18 |
3 files changed, 10 insertions, 23 deletions
diff --git a/rpkid/rpki/gui/app/forms.py b/rpkid/rpki/gui/app/forms.py index 676116cb..355f9d2c 100644 --- a/rpkid/rpki/gui/app/forms.py +++ b/rpkid/rpki/gui/app/forms.py @@ -21,7 +21,6 @@ from django import forms from rpki.resource_set import (resource_range_as, resource_range_ip) from rpki.gui.app import models from rpki.exceptions import BadIPResource -from rpki.gui.app.glue import str_to_resource_range from rpki.POW import IPAddress @@ -210,7 +209,7 @@ class ROARequest(forms.Form): try: r = self._as_resource_range() except: - raise forms.ValidationError('invalid IP address') + raise forms.ValidationError('invalid prefix') manager = models.ResourceRangeAddressV4 if r.version == 4 else models.ResourceRangeAddressV6 if not manager.objects.filter(cert__conf=self.conf, @@ -259,14 +258,14 @@ class ROARequestConfirm(forms.Form): def clean_prefix(self): try: - r = str_to_resource_range(self.cleaned_data.get('prefix')) + r = resource_range_ip.parse_str(self.cleaned_data.get('prefix')) except BadIPResource: raise forms.ValidationError('invalid prefix') return str(r) def clean(self): try: - r = str_to_resource_range(self.cleaned_data.get('prefix')) + r = resource_range_ip.parse_str(self.cleaned_data.get('prefix')) if r.prefixlen() > self.cleaned_data.get('max_prefixlen'): raise forms.ValidationError('max length is smaller than mask') except BadIPResource: diff --git a/rpkid/rpki/gui/app/glue.py b/rpkid/rpki/gui/app/glue.py index cad48147..03225de7 100644 --- a/rpkid/rpki/gui/app/glue.py +++ b/rpkid/rpki/gui/app/glue.py @@ -110,14 +110,6 @@ def list_received_resources(log, conf): print >>log, "error: unexpected pdu from rpkid type=%s" % type(pdu) -def str_to_resource_range(prefix): - try: - r = resource_range_ipv4.parse_str(prefix) - except BadIPResource: - r = resource_range_ipv6.parse_str(prefix) - return r - - def get_email_list(conf): """Return a list of the contact emails for this user. diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py index c5e6ece1..08e43605 100644 --- a/rpkid/rpki/gui/app/views.py +++ b/rpkid/rpki/gui/app/views.py @@ -35,8 +35,8 @@ from django.views.generic import DetailView from rpki.irdb import Zookeeper, ChildASN, ChildNet from rpki.gui.app import models, forms, glue, range_list -from rpki.resource_set import (resource_range_as, resource_range_ipv4, - resource_range_ipv6, roa_prefix_ipv4) +from rpki.resource_set import (resource_range_as, resource_range_ip, + roa_prefix_ipv4) from rpki import sundial import rpki.exceptions @@ -331,12 +331,8 @@ def child_add_prefix(request, pk): form = forms.AddNetForm(request.POST, child=child) if form.is_valid(): address_range = form.cleaned_data.get('address_range') - if ':' in address_range: - r = resource_range_ipv6.parse_str(address_range) - version = 'IPv6' - else: - r = resource_range_ipv4.parse_str(address_range) - version = 'IPv4' + r = resource_range_ip.parse_str(address_range) + version = 'IPv%d' % r.version child.address_ranges.create(start_ip=str(r.min), end_ip=str(r.max), version=version) Zookeeper(handle=conf.handle, logstream=logstream).run_rpkid_now() @@ -529,12 +525,12 @@ def roa_create_confirm(request): if form.is_valid(): asn = form.cleaned_data.get('asn') prefix = form.cleaned_data.get('prefix') - rng = glue.str_to_resource_range(prefix) + rng = resource_range_ip.parse_str(prefix) max_prefixlen = form.cleaned_data.get('max_prefixlen') # Always create ROA requests with a single prefix. # https://trac.rpki.net/ticket/32 roa = models.ROARequest.objects.create(issuer=conf, asn=asn) - v = 'IPv4' if isinstance(rng, resource_range_ipv4) else 'IPv6' + v = 'IPv%d' % rng.version roa.prefixes.create(version=v, prefix=str(rng.min), prefixlen=rng.prefixlen(), max_prefixlen=max_prefixlen) @@ -659,7 +655,7 @@ def refresh(request): def roa_match(rng): """Return a list of tuples of matching routes and roas.""" - if isinstance(rng, resource_range_ipv6): + if rng.min.version == 6: route_manager = models.RouteOriginV6.objects pfx = 'prefixes_v6' else: |