Project

General

Profile

« Previous | Next » 

Revision baa6302a

Added by Steve Beaver almost 9 years ago

Apply #601 fix to firewall_nat.php

(cherry picked from commit 4b0815f38a8a0f98519ca0c2bff7c81b6464e579)

View differences:

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