summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/pfsense-utils.inc17
-rw-r--r--etc/inc/util.inc3
2 files changed, 14 insertions, 6 deletions
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc
index 47469d8..11c0057 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/etc/inc/pfsense-utils.inc
@@ -2434,15 +2434,24 @@ function load_mac_manufacturer_table() {
function is_ipaddr_configured($ipaddr, $ignore_if = "", $check_localip = false, $check_subnets = false) {
global $config;
+ $isipv6 = is_ipaddrv6($ipaddr);
+
if ($check_subnets) {
$iflist = get_configured_interface_list();
foreach ($iflist as $if => $ifname) {
if ($ignore_if == $if)
continue;
- $bitmask = get_interface_subnet($if);
- $subnet = gen_subnet(get_interface_ip($if), $bitmask);
- if (ip_in_subnet($ipaddr, $subnet . '/' . $bitmask))
- return true;
+ 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;
+ }
}
$interface_list_vips = get_configured_vips_list(true);
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index b0f6aa1..2590f8e 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -477,8 +477,7 @@ function is_ipaddr($ipaddr) {
function is_ipaddrv6($ipaddr) {
if (!is_string($ipaddr) || empty($ipaddr))
return false;
- $result = Net_IPv6::checkIPv6($ipaddr);
- return $result;
+ return Net_IPv6::checkIPv6($ipaddr);
}
/* returns true if $ipaddr is a valid dotted IPv4 address */
OpenPOWER on IntegriCloud