FreeBSD fails to set advskew back to 0 after you set it to any other

value. That's a separate issue that needs fixing upstream, but in the mean
time, we can work around it by removing all CARP VIPs in the same way we
do when "Temporarily Disable CARP" is chosen before adding them all back.
Ticket #3910
This commit is contained in:
Chris Buechler 2014-10-28 16:33:09 -05:00
parent 569e2fdfac
commit eea2ad5d61

View File

@ -1374,10 +1374,22 @@ function interfaces_carp_set_maintenancemode($carp_maintenancemode){
if (isset($config["virtualip_carp_maintenancemode"]) && $carp_maintenancemode == false) {
unset($config["virtualip_carp_maintenancemode"]);
write_config("Leave CARP maintenance mode");
} else
if (!isset($config["virtualip_carp_maintenancemode"]) && $carp_maintenancemode == true) {
$config["virtualip_carp_maintenancemode"] = true;
write_config("Enter CARP maintenance mode");
if(is_array($config['virtualip']['vip'])) {
$viparr = &$config['virtualip']['vip'];
foreach ($viparr as $vip) {
switch ($vip['mode']) {
case "carp":
interface_vip_bring_down($vip);
//sleep(1);
break;
}
}
}
} else {
if (!isset($config["virtualip_carp_maintenancemode"]) && $carp_maintenancemode == true) {
$config["virtualip_carp_maintenancemode"] = true;
write_config("Enter CARP maintenance mode");
}
}
$viparr = &$config['virtualip']['vip'];