]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
network-functions: Add check_subnet()
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 25 Aug 2015 20:55:40 +0000 (21:55 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 25 Aug 2015 20:55:40 +0000 (21:55 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cfgroot/network-functions.pl
config/rootfiles/core/94/filelists/files

index 1cd2814ec1b0c32f3592b36a377ca15060dab6b2..9dd752d5e698735b9745c7ec408e9c99a4b05329 100644 (file)
@@ -163,6 +163,21 @@ sub check_ip_address_and_netmask($$) {
        return &check_netmask($netmask);
 }
 
+# Returns True for all valid subnets like a.b.c.d/e or a.b.c.d/a.b.c.d
+sub check_subnet($) {
+       my $subnet = shift;
+
+       my ($address, $network) = split(/\//, $subnet, 2);
+
+       # Check if the IP address is fine.
+       my $result = &check_ip_address($address);
+       unless ($result) {
+               return $result;
+       }
+
+       return &check_prefix($network) || &check_netmask($network);
+}
+
 # For internal use only. Will take an IP address and
 # return it in a normalised style. Like 8.8.8.010 -> 8.8.8.8.
 sub _normalise_ip_address($) {
index a6036039731c2f89c75201b644215b740e18292e..d62794d8fdfe4f50cc55d9ea6bd6707034678405 100644 (file)
@@ -5,3 +5,4 @@ srv/web/ipfire/cgi-bin/logs.cgi/log.dat
 srv/web/ipfire/cgi-bin/mail.cgi
 var/ipfire/langs
 var/ipfire/menu/40-services.menu
+var/ipfire/network-functions.pl