diff options
author | Ermal <eri@pfsense.org> | 2010-08-31 17:20:20 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2010-08-31 17:20:20 +0000 |
commit | 4d3c8697b105956c838912ebc31c679498c6e286 (patch) | |
tree | 6f50dd417364ed158b4de5837521da4f9bbe2acf /usr/local/www/interfaces_groups_edit.php | |
parent | e91e23b99f379d694d6fb541c2e3dcebabb12d56 (diff) | |
download | pfsense-4d3c8697b105956c838912ebc31c679498c6e286.zip pfsense-4d3c8697b105956c838912ebc31c679498c6e286.tar.gz |
Fixes #862. Check if we have filter rules or nat rules.
Diffstat (limited to 'usr/local/www/interfaces_groups_edit.php')
-rwxr-xr-x | usr/local/www/interfaces_groups_edit.php | 36 |
1 files 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) { |