diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-02-21 08:19:39 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-02-21 08:19:39 -0300 |
commit | 2c98a93536717635b82253a0f9718606b1a63f8d (patch) | |
tree | b930978478d1e6ceac8564f8ac1ae3c1e442e8f1 | |
parent | 8d8b1af7088c705f23483e24aef363d3055d377f (diff) | |
download | pfsense-2c98a93536717635b82253a0f9718606b1a63f8d.zip pfsense-2c98a93536717635b82253a0f9718606b1a63f8d.tar.gz |
Teach is_ipaddr_configured to check ipv6 for single IPs. While I'm here, reduce code duplication
-rw-r--r-- | etc/inc/pfsense-utils.inc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc index f6b05bf..7de604b 100644 --- a/etc/inc/pfsense-utils.inc +++ b/etc/inc/pfsense-utils.inc @@ -2441,20 +2441,24 @@ function is_ipaddr_configured($ipaddr, $ignore_if = "", $check_localip = false, foreach ($iflist as $if => $ifname) { if ($ignore_if == $if) continue; + if ($isipv6 === true) { $bitmask = get_interface_subnetv6($if); $subnet = gen_subnetv6(get_interface_ipv6($if), $bitmask); - if (ip_in_subnet($ipaddr, $subnet . '/' . $bitmask)) - return true; } else { $bitmask = get_interface_subnet($if); $subnet = gen_subnet(get_interface_ip($if), $bitmask); - if (ip_in_subnet($ipaddr, $subnet . '/' . $bitmask)) - return true; } + + if (ip_in_subnet($ipaddr, $subnet . '/' . $bitmask)) + return true; } } else { - $interface_list_ips = get_configured_ip_addresses(); + if ($isipv6 === true) + $interface_list_ips = get_configured_ipv6_addresses(); + else + $interface_list_ips = get_configured_ip_addresses(); + foreach($interface_list_ips as $if => $ilips) { /* Also ignore CARP interfaces, it'll be checked below */ if (($ignore_if == $if) || preg_match('/_vip[0-9]/', $if)) |