diff options
author | Ermal <eri@pfsense.org> | 2012-12-17 10:44:41 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2012-12-17 10:44:41 +0000 |
commit | aea564088a335bef9c9d6fb55409dd0ad65b3049 (patch) | |
tree | c78785555ef59e7d0fb85190ad652b42550cc712 /usr/local/www/services_captiveportal_mac.php | |
parent | 0faf09f7ffdf8c188ce72b6c5cc4f33bc9e069a8 (diff) | |
download | pfsense-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-x | usr/local/www/services_captiveportal_mac.php | 20 |
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(); |