]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - config/cfgroot/network-functions.pl
network_functions.pl: fix ip_address_in_network for x86_64
[people/pmueller/ipfire-2.x.git] / config / cfgroot / network-functions.pl
index 9dd752d5e698735b9745c7ec408e9c99a4b05329..cb4ca3dd88306f61290fab895308c0725c1ecdac 100644 (file)
@@ -256,7 +256,7 @@ sub ip_address_in_network($$) {
        my ($network_bin, $netmask_bin) = &network2bin($network);
 
        # Find end address
-       my $broadcast_bin = $network_bin ^ ~$netmask_bin;
+       my $broadcast_bin = $network_bin ^ (~$netmask_bin % 2 ** 32);
 
        return (($address_bin ge $network_bin) && ($address_bin le $broadcast_bin));
 }
@@ -342,6 +342,9 @@ sub testsuite() {
        $result = &ip_address_in_network("10.0.1.4", "10.0.0.0/8");
        assert($result);
 
+       $result = &ip_address_in_network("192.168.30.11", "192.168.30.0/255.255.255.0");
+       assert($result);
+
        return 0;
 }