diff options
author | Rob Austein <sra@hactrn.net> | 2012-10-12 21:42:51 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2012-10-12 21:42:51 +0000 |
commit | f91067126a35c2df1d5fff8d0061262e568114c1 (patch) | |
tree | 7998f195ca3236701fead828549fed23dc180024 /rpkid/rpki/gui | |
parent | 0de5ca9137dfafdf85e2d268016b3e6b6908fd02 (diff) |
Replace rpki.ipaddrs with rpki.POW.IPAddress.
svn path=/branches/tk274/; revision=4773
Diffstat (limited to 'rpkid/rpki/gui')
-rw-r--r-- | rpkid/rpki/gui/app/forms.py | 10 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/models.py | 1 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/views.py | 8 | ||||
-rw-r--r-- | rpkid/rpki/gui/models.py | 15 |
4 files changed, 12 insertions, 22 deletions
diff --git a/rpkid/rpki/gui/app/forms.py b/rpkid/rpki/gui/app/forms.py index 80439b00..2166343a 100644 --- a/rpkid/rpki/gui/app/forms.py +++ b/rpkid/rpki/gui/app/forms.py @@ -23,7 +23,7 @@ from rpki.resource_set import (resource_range_as, resource_range_ipv4, from rpki.gui.app import models from rpki.exceptions import BadIPResource from rpki.gui.app.glue import str_to_resource_range -import rpki.ipaddrs +from rpki.POW import IPAddress class AddConfForm(forms.Form): @@ -190,11 +190,7 @@ class ROARequest(forms.Form): """ prefix = self.cleaned_data.get('prefix') if '/' not in prefix: - p = rpki.ipaddrs.parse(prefix) - - # rpki.ipaddrs.parse doesn't return a v?addr object, so can't - # introspect p.bits - bits = 32 if ':' not in prefix else 64 + p = IPAddress(prefix) # determine the first nonzero bit starting from the lsb and # subtract from the address size to find the closest classful @@ -203,7 +199,7 @@ class ROARequest(forms.Form): while (p != 0) and (p & 1) == 0: prefixlen = prefixlen + 1 p = p >> 1 - mask = bits - (8 * (prefixlen / 8)) + mask = p.bits - (8 * (prefixlen / 8)) prefix = prefix + '/' + str(mask) return str_to_resource_range(prefix) diff --git a/rpkid/rpki/gui/cacheview/models.py b/rpkid/rpki/gui/cacheview/models.py index 4be45b5c..f58cca33 100644 --- a/rpkid/rpki/gui/cacheview/models.py +++ b/rpkid/rpki/gui/cacheview/models.py @@ -20,7 +20,6 @@ import time from django.db import models -import rpki.ipaddrs import rpki.resource_set import rpki.gui.models diff --git a/rpkid/rpki/gui/cacheview/views.py b/rpkid/rpki/gui/cacheview/views.py index b75763fa..ffb04136 100644 --- a/rpkid/rpki/gui/cacheview/views.py +++ b/rpkid/rpki/gui/cacheview/views.py @@ -20,7 +20,7 @@ from django.shortcuts import get_object_or_404, redirect from rpki.gui.cacheview import models, forms, misc from rpki.gui.app.views import render from rpki.resource_set import resource_range_as -from rpki.ipaddrs import v4addr, v6addr +from rpki.POW import IPAddress # Create your views here. @@ -133,11 +133,7 @@ def query_view(request): prefix_list = [] for roa in roas: for pfx in roa.prefixes.all(): - if pfx.family == 4: - addr = v4addr(pfx.prefix.encode()) - elif pfx.family == 6: - addr = v6addr(pfx.prefix.encode()) - + addr = IPAddress(pfx.prefix.encode()) prefix_list.append((pfx, roa, addr)) prefix_list.sort(cmp=cmp_prefix) diff --git a/rpkid/rpki/gui/models.py b/rpkid/rpki/gui/models.py index 749f335f..3f601f7c 100644 --- a/rpkid/rpki/gui/models.py +++ b/rpkid/rpki/gui/models.py @@ -23,7 +23,7 @@ import struct from django.db import models import rpki.resource_set -import rpki.ipaddrs +import rpki.POW class IPv6AddressField(models.Field): "Field large enough to hold a 128-bit unsigned integer." @@ -34,16 +34,15 @@ class IPv6AddressField(models.Field): return 'binary(16)' def to_python(self, value): - if isinstance(value, rpki.ipaddrs.v6addr): + if isinstance(value, rpki.POW.IPAddress): return value - x = struct.unpack('!QQ', value) - return rpki.ipaddrs.v6addr((x[0] << 64) | x[1]) + return rpki.POW.IPAddress.from_bytes(value) def get_db_prep_value(self, value, connection, prepared): - return struct.pack('!QQ', (long(value) >> 64) & 0xFFFFFFFFFFFFFFFFL, long(value) & 0xFFFFFFFFFFFFFFFFL) + return value.to_bytes() class IPv4AddressField(models.Field): - "Wrapper around rpki.ipaddrs.v4addr." + "Wrapper around rpki.POW.IPAddress." __metaclass__ = models.SubfieldBase @@ -51,9 +50,9 @@ class IPv4AddressField(models.Field): return 'int UNSIGNED' def to_python(self, value): - if isinstance(value, rpki.ipaddrs.v4addr): + if isinstance(value, rpki.POW.IPAddress): return value - return rpki.ipaddrs.v4addr(value) + return rpki.POW.IPAddress(value) def get_db_prep_value(self, value, connection, prepared): return long(value) |