summaryrefslogtreecommitdiffstats
path: root/src/usr/local/www/interfaces_bridge_edit.php
diff options
context:
space:
mode:
authorChris Buechler <cmb@pfsense.org>2016-02-16 23:48:10 -0600
committerChris Buechler <cmb@pfsense.org>2016-02-16 23:48:10 -0600
commit45326c4b2e4987c6bcdb117ea56534c8a5568982 (patch)
tree8e3df621c0b39670d3b6b187850878d7836d0dda /src/usr/local/www/interfaces_bridge_edit.php
parent0cf6752c64f9fcdbc653c758f6cc90b83ecbdcbc (diff)
downloadpfsense-45326c4b2e4987c6bcdb117ea56534c8a5568982.zip
pfsense-45326c4b2e4987c6bcdb117ea56534c8a5568982.tar.gz
Exclude assigned bridge interfaces from selection as part of bridge config. Ticket #5900
Diffstat (limited to 'src/usr/local/www/interfaces_bridge_edit.php')
-rw-r--r--src/usr/local/www/interfaces_bridge_edit.php14
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);
+ }
}
}
OpenPOWER on IntegriCloud