summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal LUÇI <eri@pfsense.org>2014-12-22 15:33:06 +0100
committerErmal LUÇI <eri@pfsense.org>2014-12-22 15:33:15 +0100
commitad9bce2cb286abf3a28017b11abff9099086fb93 (patch)
treec187ee611d9169028ad592c709129796e36e70ac
parentd90d869e4df75df0dce6cfb14fc9cb36664297b5 (diff)
downloadpfsense-ad9bce2cb286abf3a28017b11abff9099086fb93.zip
pfsense-ad9bce2cb286abf3a28017b11abff9099086fb93.tar.gz
Correct issue with not reloading CP properly on calling interface configure.
-rw-r--r--etc/inc/captiveportal.inc17
-rw-r--r--etc/inc/interfaces.inc5
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);
}
}
OpenPOWER on IntegriCloud