Fixes #862. Check if we have filter rules or nat rules.

This commit is contained in:
Ermal 2010-08-31 17:20:20 +00:00
parent e91e23b99f
commit 4d3c8697b1

View File

@ -97,26 +97,30 @@ if ($_POST) {
if (isset($id) && $a_ifgroups[$id] && $_POST['ifname'] != $a_ifgroups[$id]['ifname']) {
foreach ($config['filter']['rule'] as $ridx => $rule) {
if (isset($rule['floating'])) {
$rule_ifs = explode(",", $rule['interface']);
$rule_changed = false;
foreach ($rule_ifs as $rule_if_id => $rule_if) {
if ($rule_if == $a_ifgroups[$id]['ifname']) {
$rule_ifs[$rule_if_id] = $_POST['ifname'];
$rule_changed = true;
if (!empty($config['filter']) && is_array($config['filter']['rule'])) {
foreach ($config['filter']['rule'] as $ridx => $rule) {
if (isset($rule['floating'])) {
$rule_ifs = explode(",", $rule['interface']);
$rule_changed = false;
foreach ($rule_ifs as $rule_if_id => $rule_if) {
if ($rule_if == $a_ifgroups[$id]['ifname']) {
$rule_ifs[$rule_if_id] = $_POST['ifname'];
$rule_changed = true;
}
}
if ($rule_changed)
$config['filter']['rule'][$ridx]['interface'] = implode(",", $rule_ifs);
} else {
if ($rule['interface'] == $a_ifgroups[$id]['ifname'])
$config['filter']['rule'][$ridx]['interface'] = $_POST['ifname'];
}
if ($rule_changed)
$config['filter']['rule'][$ridx]['interface'] = implode(",", $rule_ifs);
} else {
if ($rule['interface'] == $a_ifgroups[$id]['ifname'])
$config['filter']['rule'][$ridx]['interface'] = $_POST['ifname'];
}
}
foreach ($config['nat']['rule'] as $ridx => $rule) {
if ($rule['interface'] == $a_ifgroups[$id]['ifname'])
$config['nat']['rule'][$ridx]['interface'] = $_POST['ifname'];
if (!empty($config['nat']) && is_array($config['nat']['rule'])) {
foreach ($config['nat']['rule'] as $ridx => $rule) {
if ($rule['interface'] == $a_ifgroups[$id]['ifname'])
$config['nat']['rule'][$ridx]['interface'] = $_POST['ifname'];
}
}
$omembers = explode(" ", $a_ifgroups[$id]['members']);
if (count($omembers) > 0) {