Browse Source

Fixes #320: Disallow prefixes with host masks

Jeremy Stretch 8 years ago
parent
commit
32d8cf451a
1 changed files with 9 additions and 0 deletions
  1. 9 0
      netbox/ipam/models.py

+ 9 - 0
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