diff options
-rw-r--r-- | etc/inc/interfaces.inc | 8 | ||||
-rwxr-xr-x | usr/local/www/xmlrpc.php | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index e8cf2de..9be8146 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -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; } } diff --git a/usr/local/www/xmlrpc.php b/usr/local/www/xmlrpc.php index 92f2cf4..a44789d 100755 --- a/usr/local/www/xmlrpc.php +++ b/usr/local/www/xmlrpc.php @@ -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(); |