From 2208be8b2d7dfcd884db9013fb8347d6856fa43c Mon Sep 17 00:00:00 2001 From: Chris Buechler Date: Sat, 25 Jun 2016 01:34:05 -0500 Subject: [PATCH] bring back subnetv4_expand function used by pfblockerng --- src/etc/inc/util.inc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index 0b78e7fee9..e19f5b5578 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -877,6 +877,20 @@ function subnet_size_by_netmask($iptype, $bits, $exact=false) { } } +/* function used by pfblockerng */ +function subnetv4_expand($subnet) { + $result = array(); + list ($ip, $bits) = explode("/", $subnet); + $net = ip2long($ip); + $mask = (0xffffffff << (32 - $bits)); + $net &= $mask; + $size = round(exp(log(2) * (32 - $bits))); + for ($i = 0; $i < $size; $i += 1) { + $result[] = long2ip($net | $i); + } + return $result; +} + /* find out whether two IPv4/IPv6 CIDR subnets overlap. Note: CIDR overlap implies one is identical or included so largest sn will be the same */ function check_subnets_overlap($subnet1, $bits1, $subnet2, $bits2) {