summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xusr/local/captiveportal/index.php8
-rwxr-xr-xusr/local/www/services_captiveportal_mac.php1
2 files changed, 9 insertions, 0 deletions
diff --git a/usr/local/captiveportal/index.php b/usr/local/captiveportal/index.php
index 7d5494e..80bbc3f 100755
--- a/usr/local/captiveportal/index.php
+++ b/usr/local/captiveportal/index.php
@@ -296,6 +296,14 @@ function portal_allow($clientip,$clientmac,$username,$password = null, $attribut
if ($_POST['replacemacpassthru']) {
foreach ($config['captiveportal']['passthrumac'] as $idx => $macent) {
if ($macent['mac'] == $mac['mac']) {
+ $macrules = "";
+ $ruleno = captiveportal_get_ipfw_passthru_ruleno($mac['mac']);
+ if ($ruleno) {
+ captiveportal_free_ipfw_ruleno($ruleno, true);
+ $macrules .= "delete {$ruleno}";
+ ++$ruleno;
+ $macrules .= "delete {$ruleno}";
+ }
unset($config['captiveportal']['passthrumac'][$idx]);
$mac['mac'] = $clientmac;
$config['captiveportal']['passthrumac'][] = $mac;
diff --git a/usr/local/www/services_captiveportal_mac.php b/usr/local/www/services_captiveportal_mac.php
index 3e459f4..55268cf 100755
--- a/usr/local/www/services_captiveportal_mac.php
+++ b/usr/local/www/services_captiveportal_mac.php
@@ -83,6 +83,7 @@ if ($_POST) {
if ($found == true) {
$ruleno = captiveportal_get_ipfw_passthru_ruleno($_POST['delmac']);
if ($ruleno) {
+ captiveportal_free_ipfw_ruleno($ruleno, true);
mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno);
}
unset($a_passthrumacs[$idx]);
OpenPOWER on IntegriCloud