summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2010-08-31 11:12:17 +0000
committerErmal <eri@pfsense.org>2010-08-31 11:12:17 +0000
commit7c73f504e568aec222835187ff5a79acb2559704 (patch)
tree9abb874cf459dcf4b00c4d7e953531e2224e3da6 /etc
parentc305abd593b296f1a125b8e8f5ebc5a047309efb (diff)
downloadpfsense-7c73f504e568aec222835187ff5a79acb2559704.zip
pfsense-7c73f504e568aec222835187ff5a79acb2559704.tar.gz
Ticket #860. Correct code for proxyarp/choparp starting. Not sure why php did not bail at some code here missing curlies :).
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/interfaces.inc15
1 files changed, 10 insertions, 5 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 0aaab85..ec0ce7f 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -1519,9 +1519,14 @@ function interface_proxyarp_configure($interface = "") {
/* kill any running choparp */
if (empty($interface))
killbyname("choparp");
+ else {
+ $vipif = get_real_interface($interface);
+ if (file_exists("{$g['varrun_path']}/choparp_{$vipif}.pid"))
+ killbypid("{$g['varrun_path']}/choparp_{$vipif}.pid");
+ }
- if (isset($config['virtualip']) && is_array($config['virtualip']['vip'])) {
- $paa = array();
+ $paa = array();
+ if (!empty($config['virtualip']) && is_array($config['virtualip']['vip'])) {
/* group by interface */
foreach ($config['virtualip']['vip'] as $vipent) {
@@ -1531,7 +1536,7 @@ function interface_proxyarp_configure($interface = "") {
else
$proxyif = "wan";
- if (!is_array($paa[$if]))
+ if (!is_array($paa[$proxyif]))
$paa[$proxyif] = array();
$paa[$proxyif][] = $vipent;
@@ -1553,8 +1558,8 @@ function interface_proxyarp_configure($interface = "") {
}
mwexec_bg("/usr/local/sbin/choparp " . $args);
}
- } else if (count($paa)) {
- foreach ($paa as $paif => $paents) {
+ } else if (count($paa) > 0) {
+ foreach ($paa as $paif => $paents) {
$paaifip = get_interface_ip($paif);
if (!(is_ipaddr($paaifip)))
continue;
OpenPOWER on IntegriCloud