Properly remove IPv6 carp vips as reported from https://forum.pfsense.org/index.php?topic=84392.0

This commit is contained in:
Ermal LUÇI 2014-11-21 11:20:46 +01:00
parent 750c9ff69a
commit e3cffd6cef
2 changed files with 12 additions and 4 deletions

View File

@ -1194,8 +1194,12 @@ function interface_vip_bring_down($vip) {
break;
case "carp":
/* XXX: Is enough to delete ip address? */
if (does_interface_exist($vipif))
pfSense_interface_deladdress($vipif, $vip['subnet']);
if (does_interface_exist($vipif)) {
if (is_ipaddrv6($vip['subnet']))
mwexec("/sbin/ifconfig {$vipif} inet6 " . escapeshellarg($vip['subnet']) . " delete");
else
pfSense_interface_deladdress($vipif, $vip['subnet']);
}
break;
}
}

View File

@ -271,8 +271,12 @@ function restore_config_section_xmlrpc($raw_params) {
/* Cleanup remaining old carps */
foreach ($oldvips as $oldvipif => $oldvippar) {
$oldvipif = get_real_interface($oldvippar['interface']);
if (!empty($oldvipif))
pfSense_interface_deladdress($oldvipif, $oldvipar['subnet']);
if (!empty($oldvipif)) {
if (is_ipaddrv6($oldvipif))
mwexec("/sbin/ifconfig " . escapeshellarg($oldvipif) . " inet6 " . escapeshellarg($oldvipar['subnet']) . " delete");
else
pfSense_interface_deladdress($oldvipif, $oldvipar['subnet']);
}
}
if ($carp_setuped == true)
interfaces_sync_setup();