summaryrefslogtreecommitdiffstats
path: root/usr/local/www/services_captiveportal_hostname.php
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2014-11-13 14:48:42 -0200
committerRenato Botelho <garga@FreeBSD.org>2014-11-13 14:50:23 -0200
commitb4e0f02b89fa6b8e8b22f31ee4486df171ae5337 (patch)
tree82bfb5ba7a3e076f0063b673e0b9d04f28a5b78f /usr/local/www/services_captiveportal_hostname.php
parent0cd7c91a29a88c3ac859be9ee9563e1737924128 (diff)
downloadpfsense-b4e0f02b89fa6b8e8b22f31ee4486df171ae5337.zip
pfsense-b4e0f02b89fa6b8e8b22f31ee4486df171ae5337.tar.gz
Make sure $cpzoneid is defined and use it to call pfSense_ipfw_Tableaction() and pfSense_ipfw_getTablestats(). Also fix fieldnames for captiveportal_hostnames. It should fix #4001
Diffstat (limited to 'usr/local/www/services_captiveportal_hostname.php')
-rw-r--r--usr/local/www/services_captiveportal_hostname.php19
1 files changed, 12 insertions, 7 deletions
diff --git a/usr/local/www/services_captiveportal_hostname.php b/usr/local/www/services_captiveportal_hostname.php
index d3a9b7e..964c2ba 100644
--- a/usr/local/www/services_captiveportal_hostname.php
+++ b/usr/local/www/services_captiveportal_hostname.php
@@ -61,27 +61,32 @@ if (!is_array($config['captiveportal']))
$config['captiveportal'] = array();
$a_cp =& $config['captiveportal'];
+if (isset($cpzone) && !empty($cpzone) && isset($a_cp[$cpzone]['zoneid']))
+ $cpzoneid = $a_cp[$cpzone]['zoneid'];
+
$pgtitle = array(gettext("Services"),gettext("Captive portal"), $a_cp[$cpzone]['zone']);
$shortcut_section = "captiveportal";
-if ($_GET['act'] == "del" && !empty($cpzone)) {
+if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) {
$a_allowedhostnames =& $a_cp[$cpzone]['allowedhostname'];
if ($a_allowedhostnames[$_GET['id']]) {
$ipent = $a_allowedhostnames[$_GET['id']];
if (isset($a_cp[$cpzone]['enable'])) {
- if (!empty($ipent['sn']))
- $ipent['ip'] .= "/{$ipent['sn']}";
- $ip = gethostbyname($ipent['ip']);
+ if(is_ipaddr($ipent['hostname']))
+ $ip = $ipent['hostname'];
+ else
+ $ip = gethostbyname($ipent['hostname']);
+ $sn = (is_ipaddrv6($ip)) ? 128 : 32;
if(is_ipaddr($ip)) {
- $ipfw = pfSense_ipfw_getTablestats($cpzone, 3, $ip);
+ $ipfw = pfSense_ipfw_getTablestats($cpzoneid, 3, $ip);
if (is_array($ipfw)) {
captiveportal_free_dn_ruleno($ipfw['dnpipe']);
pfSense_pipe_action("pipe delete {$ipfw['dnpipe']}");
pfSense_pipe_action("pipe delete " . ($ipfw['dnpipe']+1));
}
- pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_XDEL, 3, $ip);
- pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_XDEL, 4, $ip);
+ pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 3, $ip, $sn);
+ pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 4, $ip, $sn);
}
}
OpenPOWER on IntegriCloud