summaryrefslogtreecommitdiffstats
path: root/usr/local/www/interfaces_assign.php
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2013-02-21 15:18:33 -0300
committerRenato Botelho <garga@FreeBSD.org>2013-02-21 15:18:33 -0300
commit95540233e3b9d8c4be5616065edcc6e1f2e2f972 (patch)
tree51d3b2e7201bdb9a604089f42cc38c0e016896fc /usr/local/www/interfaces_assign.php
parentef88e1e1d8fe8cb5ba441bbf2354a5caf0f2e1fb (diff)
downloadpfsense-95540233e3b9d8c4be5616065edcc6e1f2e2f972.zip
pfsense-95540233e3b9d8c4be5616065edcc6e1f2e2f972.tar.gz
Do not allow bridge members to be assigned to itself. Fixes #1153
Diffstat (limited to 'usr/local/www/interfaces_assign.php')
-rwxr-xr-xusr/local/www/interfaces_assign.php13
1 files changed, 13 insertions, 0 deletions
diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php
index 31d9b58..18a5ab8 100755
--- a/usr/local/www/interfaces_assign.php
+++ b/usr/local/www/interfaces_assign.php
@@ -199,6 +199,19 @@ if ($_POST['apply']) {
$errstr .= " " . $ifn;
$input_errors[] = $errstr;
+ } else if (count($ifnames) == 1 && preg_match('/^bridge[0-9]/', $portname) && is_array($config['bridges']['bridged']) && count($config['bridges']['bridged'])) {
+ foreach ($config['bridges']['bridged'] as $bridge) {
+ if ($bridge['bridgeif'] != $portname)
+ continue;
+
+ $members = explode(",", strtoupper($bridge['members']));
+ foreach ($members as $member) {
+ if ($member == $ifnames[0]) {
+ $input_errors[] = sprintf(gettext("You cannot set port %s to interface %s because this interface is a member of %s."), $portname, $member, $portname);
+ break;
+ }
+ }
+ }
}
}
OpenPOWER on IntegriCloud