summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal LUÇI <eri@pfsense.org>2015-01-12 09:27:09 +0100
committerErmal LUÇI <eri@pfsense.org>2015-01-12 09:27:09 +0100
commit64ed3e60f518949adc1cc54b4ea77c618afc130c (patch)
treeb25ef3c270425e0d432944f3a374f89409e755fb
parentab54ec9f8d362162ada3055e99143be6ea83b5ce (diff)
downloadpfsense-64ed3e60f518949adc1cc54b4ea77c618afc130c.zip
pfsense-64ed3e60f518949adc1cc54b4ea77c618afc130c.tar.gz
Fix inherent issues with isset and empty values set as true by our parser. This made the piep configuration to be wrong at least for passthrough entries. Ticket #3932
-rw-r--r--etc/inc/captiveportal.inc24
-rw-r--r--usr/local/www/services_captiveportal.php10
2 files changed, 20 insertions, 14 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc
index a44a993..710788b 100644
--- a/etc/inc/captiveportal.inc
+++ b/etc/inc/captiveportal.inc
@@ -962,12 +962,12 @@ function captiveportal_passthrumac_configure_entry($macent, $pipeinrule = false)
$bwUp = 0;
if (!empty($macent['bw_up']))
$bwUp = $macent['bw_up'];
- else if (isset($config['captiveportal'][$cpzone]['bwdefaultup']))
+ else if (!empty($config['captiveportal'][$cpzone]['bwdefaultup']))
$bwUp = $config['captiveportal'][$cpzone]['bwdefaultup'];
$bwDown = 0;
if (!empty($macent['bw_down']))
$bwDown = $macent['bw_down'];
- else if (isset($config['captiveportal'][$cpzone]['bwdefaultdn']))
+ else if (!empty($config['captiveportal'][$cpzone]['bwdefaultdn']))
$bwDown = $config['captiveportal'][$cpzone]['bwdefaultdn'];
$ruleno = captiveportal_get_next_ipfw_ruleno();
@@ -1076,12 +1076,12 @@ function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) {
$enBwup = 0;
if (!empty($ipent['bw_up']))
$enBwup = intval($ipent['bw_up']);
- else if (isset($config['captiveportal'][$cpzone]['bwdefaultup']))
+ else if (!empty($config['captiveportal'][$cpzone]['bwdefaultup']))
$enBwup = $config['captiveportal'][$cpzone]['bwdefaultup'];
$enBwdown = 0;
if (!empty($ipent['bw_down']))
$enBwdown = intval($ipent['bw_down']);
- else if (isset($config['captiveportal'][$cpzone]['bwdefaultdn']))
+ else if (!empty($config['captiveportal'][$cpzone]['bwdefaultdn']))
$enBwdown = $config['captiveportal'][$cpzone]['bwdefaultdn'];
$pipeno = captiveportal_get_next_dn_ruleno();
@@ -1801,12 +1801,12 @@ function captiveportal_reapply_attributes($cpentry, $attributes) {
global $config, $cpzone, $g;
if (isset($config['captiveportal'][$cpzone]['peruserbw'])) {
- $dwfaultbw_up = isset($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
- $dwfaultbw_down = isset($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
+ $dwfaultbw_up = !empty($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
+ $dwfaultbw_down = !empty($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
} else
$dwfaultbw_up = $dwfaultbw_down = 0;
- $bw_up = isset($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
- $bw_down = isset($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
+ $bw_up = !empty($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
+ $bw_down = !empty($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
$bw_up_pipeno = $cpentry[1];
$bw_down_pipeno = $cpentry[1]+1;
@@ -1982,12 +1982,12 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
}
if (isset($config['captiveportal'][$cpzone]['peruserbw'])) {
- $dwfaultbw_up = isset($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
- $dwfaultbw_down = isset($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
+ $dwfaultbw_up = !empty($config['captiveportal'][$cpzone]['bwdefaultup']) ? $config['captiveportal'][$cpzone]['bwdefaultup'] : 0;
+ $dwfaultbw_down = !empty($config['captiveportal'][$cpzone]['bwdefaultdn']) ? $config['captiveportal'][$cpzone]['bwdefaultdn'] : 0;
} else
$dwfaultbw_up = $dwfaultbw_down = 0;
- $bw_up = isset($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
- $bw_down = isset($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
+ $bw_up = !empty($attributes['bw_up']) ? round(intval($attributes['bw_up'])/1000, 2) : $dwfaultbw_up;
+ $bw_down = !empty($attributes['bw_down']) ? round(intval($attributes['bw_down'])/1000, 2) : $dwfaultbw_down;
$bw_up_pipeno = $pipeno;
$bw_down_pipeno = $pipeno + 1;
diff --git a/usr/local/www/services_captiveportal.php b/usr/local/www/services_captiveportal.php
index c88f6af..8c1487b 100644
--- a/usr/local/www/services_captiveportal.php
+++ b/usr/local/www/services_captiveportal.php
@@ -339,8 +339,14 @@ if ($_POST) {
$newcp['preauthurl'] = $_POST['preauthurl'];
$newcp['blockedmacsurl'] = $_POST['blockedmacsurl'];
$newcp['peruserbw'] = $_POST['peruserbw'] ? true : false;
- $newcp['bwdefaultdn'] = $_POST['bwdefaultdn'];
- $newcp['bwdefaultup'] = $_POST['bwdefaultup'];
+ if (isset($_POST['bwdefaultdn']))
+ $newcp['bwdefaultdn'] = $_POST['bwdefaultdn'];
+ else
+ unset($newcp['bwdefaultdn']);
+ if (isset($_POST['bwdefaultup']))
+ $newcp['bwdefaultup'] = $_POST['bwdefaultup'];
+ else
+ unset($newcp['bwdefaultup']);
$newcp['certref'] = $_POST['certref'];
$newcp['nohttpsforwards'] = $_POST['nohttpsforwards'] ? true : false;
$newcp['logoutwin_enable'] = $_POST['logoutwin_enable'] ? true : false;
OpenPOWER on IntegriCloud