Commit 1ac3f123 authored by Ad Schellevis's avatar Ad Schellevis

flush ipfw when captiveportal is disabled

parent f3d9e10b
...@@ -152,6 +152,27 @@ class CPClient { ...@@ -152,6 +152,27 @@ class CPClient {
} }
} }
/**
* check if captiveportal is enabled (traverse zones, if none active return false )
* @return bool
*/
public function isEnabled()
{
$enabled_zones = 0 ;
foreach ($this->config->object()->captiveportal->children() as $cpzonename => $zone) {
if (isset($zone->enable)) {
$enabled_zones++;
}
}
if ($enabled_zones > 0) {
return true;
} else {
return false ;
}
}
/** /**
* *
* @param $zoneid * @param $zoneid
...@@ -255,18 +276,24 @@ class CPClient { ...@@ -255,18 +276,24 @@ class CPClient {
/** /**
* Reconfigure zones ( generate and load ruleset ) * Reconfigure zones ( generate and load ruleset )
*/ */
public function reconfigure(){ public function reconfigure()
$ruleset_filename = \Phalcon\DI\FactoryDefault::getDefault()->get('config')->globals->temp_path."/ipfw.rules"; {
$this->rules->generate($ruleset_filename); if ( $this->isEnabled() ) {
$ruleset_filename = \Phalcon\DI\FactoryDefault::getDefault()->get('config')->globals->temp_path."/ipfw.rules";
$this->rules->generate($ruleset_filename);
// load ruleset // load ruleset
$this->shell->exec("/sbin/ipfw -f ".$ruleset_filename); $this->shell->exec("/sbin/ipfw -f ".$ruleset_filename);
// update tables // update tables
$this->update(); $this->update();
// after reinit all accounting rules are vanished, reapply them for active sessions // after reinit all accounting rules are vanished, reapply them for active sessions
$this->loadAccounting(); $this->loadAccounting();
} else {
// captiveportal is disabled, flush all rules to be sure
$this->shell->exec("/sbin/ipfw -f flush" );
}
} }
/** /**
......
...@@ -293,8 +293,7 @@ class Rules { ...@@ -293,8 +293,7 @@ class Rules {
$this->rules[] = "add 65534 deny all from any to any"; $this->rules[] = "add 65534 deny all from any to any";
} }
/** /**
* load ruleset * load ruleset
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment