diff options
author | Ermal LUÇI <eri@pfsense.org> | 2014-12-22 15:33:06 +0100 |
---|---|---|
committer | Ermal LUÇI <eri@pfsense.org> | 2014-12-22 15:33:06 +0100 |
commit | a08db60378358d487af16280ab4a4993b1e10d1b (patch) | |
tree | db5318e6e74acb43e146a8d59f3d1b0808118fa0 /etc | |
parent | b2448aa0c9aa35c47a6203a632074aaeeddb91da (diff) | |
download | pfsense-a08db60378358d487af16280ab4a4993b1e10d1b.zip pfsense-a08db60378358d487af16280ab4a4993b1e10d1b.tar.gz |
Correct issue with not reloading CP properly on calling interface configure.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/captiveportal.inc | 17 | ||||
-rw-r--r-- | etc/inc/interfaces.inc | 5 |
2 files changed, 20 insertions, 2 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc index cf97f2b..413b108 100644 --- a/etc/inc/captiveportal.inc +++ b/etc/inc/captiveportal.inc @@ -448,6 +448,23 @@ function captiveportal_init_webgui_zone($cpcfg) { } } +function captiveportal_init_rules_byinterface($interface) { + global $cpzone, $cpzoneid, $config; + + if (!is_array($config['captiveportal'])) + return; + + foreach ($config['captiveportal'] as $cpkey => $cp) { + $cpzone = $cpkey; + $cpzoneid = $cp['zoneid']; + $cpinterfaces = explode(",", $cp['interface']); + if (in_array($interface, $cpinterfaces)) { + captiveportal_init_rules(); + break; + } + } +} + /* reinit will disconnect all users, be careful! */ function captiveportal_init_rules($reinit = false) { global $config, $g, $cpzone, $cpzoneid; diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 5250891..7322e44 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -3090,9 +3090,10 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven /* update dyndns */ send_event("service reload dyndns {$interface}"); - /* XXX: which CPZONE? Needed? */ /* reload captive portal */ - captiveportal_init_rules(); + if (!function_exists('captiveportal_init_rules_byinterface')) + require_once('captiveportal.inc'); + captiveportal_init_rules_byinterface($interface); } } |