diff options
author | Ermal <eri@pfsense.org> | 2010-08-31 11:12:17 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2010-08-31 11:12:17 +0000 |
commit | 7c73f504e568aec222835187ff5a79acb2559704 (patch) | |
tree | 9abb874cf459dcf4b00c4d7e953531e2224e3da6 | |
parent | c305abd593b296f1a125b8e8f5ebc5a047309efb (diff) | |
download | pfsense-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 :).
-rw-r--r-- | etc/inc/interfaces.inc | 15 |
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; |