BUG11466: Fix network_equal function
authorAlexander Marx <alexander.marx@ipfire.org>
Tue, 7 Nov 2017 13:17:27 +0000 (14:17 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 Nov 2017 16:16:18 +0000 (16:16 +0000)
The network_equal function only tested the subnet addresses of two given networks which lead to
errormessages saying "This is the green network"
The fix tests netwok and subnet IP's to fix this

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cfgroot/network-functions.pl

index 93b8190..25f9af1 100644 (file)
@@ -108,10 +108,10 @@ sub network_equal {
        my $network1 = shift;
        my $network2 = shift;
 
-       my $bin1 = &network2bin($network1);
-       my $bin2 = &network2bin($network2);
+       my @bin1 = &network2bin($network1);
+       my @bin2 = &network2bin($network2);
 
-       if ($bin1 eq $bin2) {
+       if ($bin1[0] eq $bin2[0] && $bin1[1] eq $bin2[1]) {
                return 1;
        }
 
@@ -457,7 +457,7 @@ sub testsuite() {
        assert(!$result);
 
        $result = &network_equal("192.168.0.1/24", "192.168.0.XXX/24");
-       assert($result);
+       assert(!$result);
 
        $result = &ip_address_in_network("10.0.1.4", "10.0.0.0/8");
        assert($result);