summaryrefslogtreecommitdiffstats
path: root/etc/inc/filter.inc
diff options
context:
space:
mode:
authorRenato Botelho <renato.botelho@bluepex.com>2010-08-23 12:50:21 -0300
committerRenato Botelho <renato.botelho@bluepex.com>2010-08-23 12:50:21 -0300
commit02226b924f58b216b8771d65717d8d3d6b457d76 (patch)
treeaac2474d36b86fac61cfff9a4fef98e86816d82a /etc/inc/filter.inc
parenta8cc4ac70e1018f4ce146c909f1e81f2562eef47 (diff)
parent25a2bf77d77de2ad0f5a9f3c9daf18b88e90b844 (diff)
downloadpfsense-02226b924f58b216b8771d65717d8d3d6b457d76.zip
pfsense-02226b924f58b216b8771d65717d8d3d6b457d76.tar.gz
Merge remote branch 'mainline/master' into inc
Conflicts: etc/inc/config.lib.inc
Diffstat (limited to 'etc/inc/filter.inc')
-rw-r--r--etc/inc/filter.inc27
1 files changed, 22 insertions, 5 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index 4371aec..aa3fff5 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -141,13 +141,30 @@ function filter_configure() {
}
function filter_delete_states_for_down_gateways() {
- global $config;
+ global $config, $GatewaysList;
$a_gateways = return_gateways_status();
- foreach ($a_gateways as $gwip => $gateway) {
- if (stristr($status['status'], "down")) {
- if (is_ipaddr($gateway['srcip']) && is_ipaddr($gwip)) {
- mwexec("/sbin/pfctl -b {$gateway['srcip']} -b {$gwip}");
+ if (is_array($GatewaysList)) {
+ foreach ($GatewaysList as $gwname => $gateway) {
+ if (empty($gateway['monitor']))
+ continue;
+ if (!is_ipaddr($gateway['monitor']))
+ continue;
+ if (strstr($gateway['monitor'], "127.0.0."))
+ continue;
+ if (empty($a_gateways[$gateway['monitor']]))
+ continue;
+ $gwstatus =& $a_gateways[$gateway['monitor']];
+ if (strstr($gwstatus['status'], "down")) {
+ $gwip = $gateway['gateway'];
+ if (!is_ipaddr($gwip))
+ $gwip = get_interface_gateway($gateway['friendlyiface']);
+ if (is_ipaddr($gwstatus['srcip'])) {
+ $cmd = "/sbin/pfctl -b {$gateway['srcip']} ";
+ if (is_ipaddr($gwip))
+ $cmd .= "-b {$gwip}";
+ mwexec($cmd);
+ }
}
}
}
OpenPOWER on IntegriCloud