summaryrefslogtreecommitdiffstats
path: root/usr/local/www/interfaces_groups_edit.php
diff options
context:
space:
mode:
authorErik Fonnesbeck <efonnes@gmail.com>2010-08-06 17:17:58 -0600
committerErik Fonnesbeck <efonnes@gmail.com>2010-08-06 17:17:58 -0600
commit22d0d529c9609e944c8705c4aff667f0f272c8bc (patch)
tree3c9bb1af578ab5283121f117a61bc4af1157b690 /usr/local/www/interfaces_groups_edit.php
parent187ce62b3d37252a4b75597724645eb77eb61a60 (diff)
downloadpfsense-22d0d529c9609e944c8705c4aff667f0f272c8bc.zip
pfsense-22d0d529c9609e944c8705c4aff667f0f272c8bc.tar.gz
Update the interface group name in floating rules with multiple interfaces selected, too. Ticket #792
Diffstat (limited to 'usr/local/www/interfaces_groups_edit.php')
-rwxr-xr-xusr/local/www/interfaces_groups_edit.php17
1 files changed, 15 insertions, 2 deletions
diff --git a/usr/local/www/interfaces_groups_edit.php b/usr/local/www/interfaces_groups_edit.php
index 264cee3..b72a442 100755
--- a/usr/local/www/interfaces_groups_edit.php
+++ b/usr/local/www/interfaces_groups_edit.php
@@ -98,8 +98,21 @@ if ($_POST) {
if (isset($id) && $a_ifgroups[$id] && $_POST['ifname'] != $a_ifgroups[$id]['ifname']) {
foreach ($config['filter']['rule'] as $ridx => $rule) {
- if ($rule['interface'] == $a_ifgroups[$id]['ifname'])
- $config['filter']['rule'][$ridx]['interface'] = $_POST['ifname'];
+ 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'];
+ }
}
foreach ($config['nat']['rule'] as $ridx => $rule) {
if ($rule['interface'] == $a_ifgroups[$id]['ifname'])
OpenPOWER on IntegriCloud