diff options
author | Chris Buechler <cmb@pfsense.org> | 2016-02-16 23:48:10 -0600 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2016-02-16 23:48:10 -0600 |
commit | 45326c4b2e4987c6bcdb117ea56534c8a5568982 (patch) | |
tree | 8e3df621c0b39670d3b6b187850878d7836d0dda | |
parent | 0cf6752c64f9fcdbc653c758f6cc90b83ecbdcbc (diff) | |
download | pfsense-45326c4b2e4987c6bcdb117ea56534c8a5568982.zip pfsense-45326c4b2e4987c6bcdb117ea56534c8a5568982.tar.gz |
Exclude assigned bridge interfaces from selection as part of bridge config. Ticket #5900
-rw-r--r-- | src/usr/local/www/interfaces_bridge_edit.php | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/usr/local/www/interfaces_bridge_edit.php b/src/usr/local/www/interfaces_bridge_edit.php index 626020a..df8e89b 100644 --- a/src/usr/local/www/interfaces_bridge_edit.php +++ b/src/usr/local/www/interfaces_bridge_edit.php @@ -263,6 +263,9 @@ if ($_POST) { if (empty($config['interfaces'][$ifmembers])) { $input_errors[] = gettext("A member interface passed does not exist in configuration"); } + if (substr($config['interfaces'][$ifmembers]['if'], 0, 6) == "bridge") { + $input_errors[] = gettext("A bridge interface cannot be a member of a bridge."); + } if (is_array($config['interfaces'][$ifmembers]['wireless']) && $config['interfaces'][$ifmembers]['wireless']['mode'] != "hostap") { $input_errors[] = gettext("Bridging a wireless interface is only possible in hostap mode."); @@ -370,16 +373,19 @@ if ($_POST) { } } +// port list with the exception of assigned bridge interfaces to prevent invalid configs function build_port_list($selecton) { - global $ifacelist; + global $config, $ifacelist; $portlist = array('list' => array(), 'selected' => array()); foreach ($ifacelist as $ifn => $ifdescr) { - $portlist['list'][$ifn] = $ifdescr; + if (substr($config['interfaces'][$ifn]['if'], 0, 6) != "bridge") { + $portlist['list'][$ifn] = $ifdescr; - if (in_array($ifn, explode(',', $selecton))) { - array_push($portlist['selected'], $ifn); + if (in_array($ifn, explode(',', $selecton))) { + array_push($portlist['selected'], $ifn); + } } } |