summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usr/local/www/firewall_rules.php5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php
index bc2d5ae..dfc49ef 100644
--- a/src/usr/local/www/firewall_rules.php
+++ b/src/usr/local/www/firewall_rules.php
@@ -253,6 +253,7 @@ if (isset($_POST['del_x'])) {
if (is_array($_POST['rule']) && count($_POST['rule'])) {
$a_separators = &$config['filter']['separator'][strtolower($if)];
+ $num_deleted = 0;
foreach ($_POST['rule'] as $rulei) {
delete_nat_association($a_filter[$rulei]['associated-rule-id']);
@@ -260,9 +261,11 @@ if (isset($_POST['del_x'])) {
$deleted = true;
// Update the separators
- $ridx = ifridx($if, $rulei); // get rule index within interface
+ // As rules are deleted, $ridx has to be decremented or separator position will break
+ $ridx = ifridx($if, $rulei) - $num_deleted; // get rule index within interface
$mvnrows = -1;
move_separators($a_separators, $ridx, $mvnrows);
+ $num_deleted++;
}
if ($deleted) {
OpenPOWER on IntegriCloud