From 32d8cf451a7f29e7aa6c4e0512dab01723ae7fe4 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 18 Jul 2016 10:06:43 -0400 Subject: [PATCH] Fixes #320: Disallow prefixes with host masks --- netbox/ipam/models.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index bfac967fc..c02c12828 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -247,6 +247,15 @@ class Prefix(CreatedUpdatedModel): def get_absolute_url(self): return reverse('ipam:prefix', args=[self.pk]) + def clean(self): + # Disallow host masks + if self.prefix.version == 4 and self.prefix.prefixlen == 32: + raise ValidationError("Cannot create host addresses (/32) as prefixes. These should be IPv4 addresses " + "instead.") + elif self.prefix.version == 6 and self.prefix.prefixlen == 128: + raise ValidationError("Cannot create host addresses (/128) as prefixes. These should be IPv6 addresses " + "instead.") + def save(self, *args, **kwargs): if self.prefix: # Clear host bits from prefix