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:15 +0100 |
commit | ad9bce2cb286abf3a28017b11abff9099086fb93 (patch) | |
tree | c187ee611d9169028ad592c709129796e36e70ac | |
parent | d90d869e4df75df0dce6cfb14fc9cb36664297b5 (diff) | |
download | pfsense-ad9bce2cb286abf3a28017b11abff9099086fb93.zip pfsense-ad9bce2cb286abf3a28017b11abff9099086fb93.tar.gz |
Correct issue with not reloading CP properly on calling interface configure.
-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); } } |