diff options
-rwxr-xr-x | usr/local/captiveportal/index.php | 8 | ||||
-rwxr-xr-x | usr/local/www/services_captiveportal_mac.php | 1 |
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]); |