summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2015-01-22 10:01:19 -0200
committerRenato Botelho <garga@FreeBSD.org>2015-01-22 10:01:37 -0200
commit8e24d1dacd80fd539cc9dd6a5f0a7c8953bcffd0 (patch)
tree1afbec81d294c7cf34e085b1a66cf4fee68e5d98
parentb711bfac325d8e498ecb36a23582154941ec3b94 (diff)
downloadpfsense-8e24d1dacd80fd539cc9dd6a5f0a7c8953bcffd0.zip
pfsense-8e24d1dacd80fd539cc9dd6a5f0a7c8953bcffd0.tar.gz
Make sure radvd is reconfigured when CARP is enabled/disabled. It should fix #4252
-rw-r--r--usr/local/www/carp_status.php19
1 files changed, 18 insertions, 1 deletions
diff --git a/usr/local/www/carp_status.php b/usr/local/www/carp_status.php
index cbccbc6..e8e5077 100644
--- a/usr/local/www/carp_status.php
+++ b/usr/local/www/carp_status.php
@@ -60,11 +60,28 @@ if($_POST['disablecarp'] <> "") {
set_single_sysctl('net.inet.carp.allow', '0');
if(is_array($config['virtualip']['vip'])) {
$viparr = &$config['virtualip']['vip'];
+ $found_dhcpdv6 = false;
foreach ($viparr as $vip) {
+ $carp_iface = "{$vip['interface']}_vip{$vip['vhid']}";
switch ($vip['mode']) {
case "carp":
interface_vip_bring_down($vip);
- interface_ipalias_cleanup("{$vip['interface']}_vip{$vip['vhid']}");
+ interface_ipalias_cleanup($carp_iface);
+
+ /*
+ * Reconfigure radvd when necessary
+ * XXX: Is it the best way to do it?
+ */
+ if (isset($config['dhcpdv6']) && is_array($config['dhcpdv6'])) {
+ foreach ($config['dhcpdv6'] as $dhcpv6if => $dhcpv6ifconf) {
+ if ($dhcpv6ifconf['rainterface'] != $carp_iface)
+ continue;
+
+ services_radvd_configure();
+ break;
+ }
+ }
+
sleep(1);
break;
}
OpenPOWER on IntegriCloud