diff options
author | Steve Beaver <sbeaver@netgate.com> | 2016-09-21 13:46:19 -0400 |
---|---|---|
committer | Steve Beaver <sbeaver@netgate.com> | 2016-09-21 13:46:53 -0400 |
commit | baa6302a2da723f49f5521e1f4a76e133f628a3b (patch) | |
tree | e2f818065c4a91b7144a5827cf75dcc44c5887cf /src | |
parent | 83b4b5141c00b2c4eede6d231c3133257953ee21 (diff) | |
download | pfsense-baa6302a2da723f49f5521e1f4a76e133f628a3b.zip pfsense-baa6302a2da723f49f5521e1f4a76e133f628a3b.tar.gz |
Apply #601 fix to firewall_nat.php
(cherry picked from commit 4b0815f38a8a0f98519ca0c2bff7c81b6464e579)
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/local/www/firewall_nat.php | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/usr/local/www/firewall_nat.php b/src/usr/local/www/firewall_nat.php index 2c8e23a..bac4927 100644 --- a/src/usr/local/www/firewall_nat.php +++ b/src/usr/local/www/firewall_nat.php @@ -161,6 +161,7 @@ if (isset($_POST['del_x'])) { /* delete selected rules */ if (is_array($_POST['rule']) && count($_POST['rule'])) { $a_separators = &$config['nat']['separator']; + $num_deleted = 0; foreach ($_POST['rule'] as $rulei) { $target = $rule['target']; @@ -168,16 +169,17 @@ if (isset($_POST['del_x'])) { // Check for filter rule associations if (isset($a_nat[$rulei]['associated-rule-id'])) { delete_id($a_nat[$rulei]['associated-rule-id'], $config['filter']['rule']); - mark_subsystem_dirty('filter'); } unset($a_nat[$rulei]); // Update the separators - $ridx = $rulei; + // As rules are deleted, $ridx has to be decremented or separator position will break + $ridx = $rulei - $num_deleted; $mvnrows = -1; move_separators($a_separators, $ridx, $mvnrows); + $num_deleted++; } if (write_config()) { |