summaryrefslogtreecommitdiffstats
path: root/usr/local/www/services_captiveportal_mac.php
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2012-12-17 10:44:41 +0000
committerErmal <eri@pfsense.org>2012-12-17 10:44:41 +0000
commitaea564088a335bef9c9d6fb55409dd0ad65b3049 (patch)
treec78785555ef59e7d0fb85190ad652b42550cc712 /usr/local/www/services_captiveportal_mac.php
parent0faf09f7ffdf8c188ce72b6c5cc4f33bc9e069a8 (diff)
downloadpfsense-aea564088a335bef9c9d6fb55409dd0ad65b3049.zip
pfsense-aea564088a335bef9c9d6fb55409dd0ad65b3049.tar.gz
Separate ipfw rule no db from limiter ones. Since ipfw has per instance feature while dummynet/limiters is a single instance.
Diffstat (limited to 'usr/local/www/services_captiveportal_mac.php')
-rwxr-xr-xusr/local/www/services_captiveportal_mac.php20
1 files changed, 16 insertions, 4 deletions
diff --git a/usr/local/www/services_captiveportal_mac.php b/usr/local/www/services_captiveportal_mac.php
index a98138a..b9a8938 100755
--- a/usr/local/www/services_captiveportal_mac.php
+++ b/usr/local/www/services_captiveportal_mac.php
@@ -104,9 +104,15 @@ if ($_POST) {
if ($found == true) {
$ruleno = captiveportal_get_ipfw_passthru_ruleno($_POST['delmac']);
if ($ruleno) {
- captiveportal_free_ipfw_ruleno($ruleno, true);
+ captiveportal_free_ipfw_ruleno($ruleno);
+ $pipeno = captiveportal_get_dn_passthru_ruleno($_POST['delmac']);
+ if ($pipeno)
+ captiveportal_free_dn_ruleno($pipeno);
captiveportal_ipfw_set_context($cpzone);
- mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno);
+ if (!empty($pipeno))
+ mwexec("/sbin/ipfw -q delete {$ruleno}; /sbin/ipfw -q delete " . ++$ruleno . "; /sbin/ipfw -q pipe delete {$pipeno}; /sbin/ipfw -q pipe delete " . (++$pipeno));
+ else
+ mwexec("/sbin/ipfw -q delete {$ruleno}; /sbin/ipfw -q delete " . ++$ruleno);
}
unset($a_passthrumacs[$idx]);
write_config();
@@ -123,9 +129,15 @@ if ($_GET['act'] == "del") {
if ($a_passthrumacs[$_GET['id']]) {
$ruleno = captiveportal_get_ipfw_passthru_ruleno($a_passthrumacs[$_GET['id']]['mac']);
if ($ruleno) {
- captiveportal_ipfw_set_context($cpzone);
captiveportal_free_ipfw_ruleno($ruleno);
- mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno);
+ $pipeno = captiveportal_get_dn_passthru_ruleno($_POST['delmac']);
+ if ($pipeno)
+ captiveportal_free_dn_ruleno($pipeno);
+ captiveportal_ipfw_set_context($cpzone);
+ if (!empty($pipeno))
+ mwexec("/sbin/ipfw -q delete {$ruleno}; /sbin/ipfw -q delete " . ++$ruleno . "; /sbin/ipfw -q pipe delete {$pipeno}; /sbin/ipfw -q pipe delete " . (++$pipeno));
+ else
+ mwexec("/sbin/ipfw -q delete {$ruleno}; /sbin/ipfw -q delete " . ++$ruleno);
}
unset($a_passthrumacs[$_GET['id']]);
write_config();
OpenPOWER on IntegriCloud