summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2012-12-17 11:41:24 +0000
committerErmal <eri@pfsense.org>2012-12-17 11:41:24 +0000
commit1744a05823b73add76bf8fd1a4222a2626d2c400 (patch)
treeb436b94178ca8794ba947664e6fbb532c52deedd
parent1272429c1b2b95a16be8af0469cac855cdbc1887 (diff)
downloadpfsense-1744a05823b73add76bf8fd1a4222a2626d2c400.zip
pfsense-1744a05823b73add76bf8fd1a4222a2626d2c400.tar.gz
Cleanup the pipes as well when removing or operating on tables for hostnames/ips/mac
-rwxr-xr-xusr/local/www/services_captiveportal_hostname.php4
-rwxr-xr-xusr/local/www/services_captiveportal_ip.php10
-rwxr-xr-xusr/local/www/services_captiveportal_ip_edit.php13
3 files changed, 19 insertions, 8 deletions
diff --git a/usr/local/www/services_captiveportal_hostname.php b/usr/local/www/services_captiveportal_hostname.php
index b575b29..679e562 100755
--- a/usr/local/www/services_captiveportal_hostname.php
+++ b/usr/local/www/services_captiveportal_hostname.php
@@ -74,14 +74,14 @@ if ($_GET['act'] == "del" && !empty($cpzone)) {
$ip = gethostbyname($ipent['ip']);
if(is_ipaddr($ip)) {
captiveportal_ipfw_set_context($zone);
- mwexec("/sbin/ipfw table 3 delete {$ip}");
- mwexec("/sbin/ipfw table 4 delete {$ip}");
$ipfw = pfSense_ipfw_getTablestats($cpzone, 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_DEL, 3, $ip);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 4, $ip);
}
}
diff --git a/usr/local/www/services_captiveportal_ip.php b/usr/local/www/services_captiveportal_ip.php
index ee1b463..4d895cd 100755
--- a/usr/local/www/services_captiveportal_ip.php
+++ b/usr/local/www/services_captiveportal_ip.php
@@ -70,8 +70,14 @@ if ($_GET['act'] == "del") {
if (!empty($ipent['sn']))
$ipent['ip'] .= "/{$ipent['sn']}";
captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw table 3 delete " . $ipent['ip']);
- mwexec("/sbin/ipfw table 4 delete " . $ipent['ip']);
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 3, $ipent['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_DEL, 3, $ipent['ip']);
+ pfSense_ipfw_Tableaction($cpzone, IP_FW_TABLE_DEL, 4, $ipent['ip']);
}
unset($a_allowedips[$_GET['id']]);
diff --git a/usr/local/www/services_captiveportal_ip_edit.php b/usr/local/www/services_captiveportal_ip_edit.php
index 92642b8..763ca90 100755
--- a/usr/local/www/services_captiveportal_ip_edit.php
+++ b/usr/local/www/services_captiveportal_ip_edit.php
@@ -144,11 +144,16 @@ if ($_POST) {
write_config();
if (isset($a_cp[$cpzone]['enable']) && is_module_loaded("ipfw.ko")) {
- $rules = "";
- for ($i = 3; $i < 10; $i++)
- $rules .= "table {$i} delete {$oldip}\n";
+ $rules = "table 3 delete {$oldip}";
+ $rules .= "table 4 delete {$oldip}";
+ $ipfw = pfSense_ipfw_getTablestats($cpzone, 3, $oldip);
+ if (is_array($ipfw)) {
+ captiveportal_free_dn_ruleno($ipfw['dnpipe']);
+ $rules .= "pipe delete {$ipfw['dnpipe']}";
+ $rules .= "pipe delete " . ($ipfw['dnpipe']+1);
+ }
$rules .= captiveportal_allowedip_configure_entry($ip);
- file_put_contents("{$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}", $rules);
+ @file_put_contents("{$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}", $rules);
captiveportal_ipfw_set_context($cpzone);
mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}");
@unlink("{$g['tmp_path']}/{$cpzone}_allowedip_tmp{$id}");
OpenPOWER on IntegriCloud