summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2013-12-07 19:29:15 +0000
committerErmal <eri@pfsense.org>2013-12-07 19:29:15 +0000
commit52d5ef8d14d4dbe8974b657457d3244469016154 (patch)
treef0a557c83a7bf991c543ffa13cba721de58d1985
parent84b23cce27a1c925d5048ae507bf9d483a27ba15 (diff)
downloadpfsense-52d5ef8d14d4dbe8974b657457d3244469016154.zip
pfsense-52d5ef8d14d4dbe8974b657457d3244469016154.tar.gz
Nice race on FreeBSD 10 for carp seems you cannot do on the same command line the carp config due to inherent races. Account for this
-rw-r--r--etc/inc/interfaces.inc14
1 files changed, 6 insertions, 8 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 9b66870..ff42892 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -2143,18 +2143,16 @@ function interface_carp_configure(&$vip) {
if ($vip['password'] != "")
$password = " pass {$vip_password}";
- $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
$advbase = "";
if (!empty($vip['advbase']))
$advbase = "advbase {$vip['advbase']}";
- if (is_ipaddrv4($vip['subnet'])) {
- $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
- mwexec("/sbin/ifconfig {$realif} {$vip['subnet']}/{$vip['subnet_bits']} alias vhid {$vip['vhid']} advskew {$vip['advskew']} {$advbase} {$password}");
- } else if (is_ipaddrv6($vip['subnet'])) {
- $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
- mwexec("/sbin/ifconfig {$realif} inet6 {$vip['subnet']} prefixlen {$vip['subnet_bits']} vhid {$vip['vhid']} advskew {$vip['advskew']} {$advbase} {$password}");
- }
+ if (is_ipaddrv4($vip['subnet']))
+ mwexec("/sbin/ifconfig {$realif} {$vip['subnet']}/{$vip['subnet_bits']} alias");
+ else if (is_ipaddrv6($vip['subnet']))
+ mwexec("/sbin/ifconfig {$realif} inet6 {$vip['subnet']} prefixlen {$vip['subnet_bits']}");
+
+ mwexec("/sbin/ifconfig {$realif} vhid {$vip['vhid']} advskew {$vip['advskew']} {$advbase} {$password}");
return $realif;
}
OpenPOWER on IntegriCloud