From 4d3c8697b105956c838912ebc31c679498c6e286 Mon Sep 17 00:00:00 2001 From: Ermal Date: Tue, 31 Aug 2010 17:20:20 +0000 Subject: Fixes #862. Check if we have filter rules or nat rules. --- usr/local/www/interfaces_groups_edit.php | 36 ++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/usr/local/www/interfaces_groups_edit.php b/usr/local/www/interfaces_groups_edit.php index b72a442..1906a69 100755 --- a/usr/local/www/interfaces_groups_edit.php +++ b/usr/local/www/interfaces_groups_edit.php @@ -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) { -- cgit v1.1