summaryrefslogtreecommitdiffstats
path: root/usr/local/www/firewall_virtual_ip.php
diff options
context:
space:
mode:
authorPiBa-NL <pba_2k3@yahoo.com>2014-03-09 17:16:51 +0100
committerPiBa-NL <pba_2k3@yahoo.com>2014-03-09 17:16:51 +0100
commita9fc108f9c09c2b2ea0afb3fca5d526cbaea9bb7 (patch)
treea779001324dd3e9d5ca0b93d2eb0de10cd8c2c85 /usr/local/www/firewall_virtual_ip.php
parentd292bd8d60b1e01702b3654e8bb3ac8fd66c88e6 (diff)
downloadpfsense-a9fc108f9c09c2b2ea0afb3fca5d526cbaea9bb7.zip
pfsense-a9fc108f9c09c2b2ea0afb3fca5d526cbaea9bb7.tar.gz
firewall_virtual_ip , allow deleting last ip-alias if interface uses same the subnet. (while CARP-ip is present)
Diffstat (limited to 'usr/local/www/firewall_virtual_ip.php')
-rwxr-xr-xusr/local/www/firewall_virtual_ip.php9
1 files changed, 7 insertions, 2 deletions
diff --git a/usr/local/www/firewall_virtual_ip.php b/usr/local/www/firewall_virtual_ip.php
index 8e524a6..b081c46 100755
--- a/usr/local/www/firewall_virtual_ip.php
+++ b/usr/local/www/firewall_virtual_ip.php
@@ -140,22 +140,27 @@ if ($_GET['act'] == "del") {
}
if ($a_vip[$_GET['id']]['mode'] == "ipalias") {
+ $subnet = gen_subnet($a_vip[$_GET['id']]['subnet'], $a_vip[$_GET['id']]['subnet_bits']) . "/" . $a_vip[$_GET['id']]['subnet_bits'];
+ $found_if = false;
$found_carp = false;
$found_other_alias = false;
+ if ($subnet == $if_subnet)
+ $found_if = true;
+
$vipiface = $a_vip[$_GET['id']]['interface'];
foreach ($a_vip as $vip_id => $vip) {
if ($vip_id == $_GET['id'])
continue;
- if ($vip['interface'] == $vipiface && ip_in_subnet($vip['subnet'], gen_subnet($a_vip[$_GET['id']]['subnet'], $a_vip[$_GET['id']]['subnet_bits']) . "/" . $a_vip[$_GET['id']]['subnet_bits']))
+ if ($vip['interface'] == $vipiface && ip_in_subnet($vip['subnet'], $subnet))
if ($vip['mode'] == "carp")
$found_carp = true;
else if ($vip['mode'] == "ipalias")
$found_other_alias = true;
}
- if ($found_carp === true && $found_other_alias === false)
+ if ($found_carp === true && $found_other_alias === false && $found_if === false)
$input_errors[] = gettext("This entry cannot be deleted because it is still referenced by a CARP IP with the description") . " {$vip['descr']}.";
}
OpenPOWER on IntegriCloud