Revision baa6302a
Added by Steve Beaver almost 9 years ago
src/usr/local/www/firewall_nat.php | ||
---|---|---|
161 | 161 |
/* delete selected rules */ |
162 | 162 |
if (is_array($_POST['rule']) && count($_POST['rule'])) { |
163 | 163 |
$a_separators = &$config['nat']['separator']; |
164 |
$num_deleted = 0; |
|
164 | 165 |
|
165 | 166 |
foreach ($_POST['rule'] as $rulei) { |
166 | 167 |
$target = $rule['target']; |
... | ... | |
168 | 169 |
// Check for filter rule associations |
169 | 170 |
if (isset($a_nat[$rulei]['associated-rule-id'])) { |
170 | 171 |
delete_id($a_nat[$rulei]['associated-rule-id'], $config['filter']['rule']); |
171 |
|
|
172 | 172 |
mark_subsystem_dirty('filter'); |
173 | 173 |
} |
174 | 174 |
|
175 | 175 |
unset($a_nat[$rulei]); |
176 | 176 |
|
177 | 177 |
// Update the separators |
178 |
$ridx = $rulei; |
|
178 |
// As rules are deleted, $ridx has to be decremented or separator position will break |
|
179 |
$ridx = $rulei - $num_deleted; |
|
179 | 180 |
$mvnrows = -1; |
180 | 181 |
move_separators($a_separators, $ridx, $mvnrows); |
182 |
$num_deleted++; |
|
181 | 183 |
} |
182 | 184 |
|
183 | 185 |
if (write_config()) { |
Also available in: Unified diff
Apply #601 fix to firewall_nat.php
(cherry picked from commit 4b0815f38a8a0f98519ca0c2bff7c81b6464e579)