summaryrefslogtreecommitdiffstats
path: root/etc/inc/interfaces.inc
diff options
context:
space:
mode:
authorErmal Luçi <eri@pfsense.org>2008-11-05 20:24:32 +0000
committerErmal Luçi <eri@pfsense.org>2008-11-05 20:24:32 +0000
commita47a5798aaaabed5777c4aa7f04d75b30b7ec87e (patch)
tree4c415694d9fe9f13c91c63d10ba7762dd41a2208 /etc/inc/interfaces.inc
parent31241000c625268eb7c84f086652b507538d74a2 (diff)
downloadpfsense-a47a5798aaaabed5777c4aa7f04d75b30b7ec87e.zip
pfsense-a47a5798aaaabed5777c4aa7f04d75b30b7ec87e.tar.gz
Do some better checking before acting on the bridge.
Diffstat (limited to 'etc/inc/interfaces.inc')
-rw-r--r--etc/inc/interfaces.inc72
1 files changed, 42 insertions, 30 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 8cb4a87..601c8c5 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -203,36 +203,48 @@ function interface_bridge_configure(&$bridge)
$realif = get_real_interface($bridge['span']);
mwexec("/sbin/ifconfig {$bridgeif} span {$realif}");
}
- $edgeifs = explode(',', $bridge['edge']);
- foreach ($edgeifs as $edgeif) {
- $realif = get_real_interface($edgeif);
- mwexec("/sbin/ifconfig {$bridgeif} edge {$realif}");
- }
- $edgeifs = explode(',', $bridge['autoedge']);
- foreach ($edgeifs as $edgeif) {
- $realif = get_real_interface($edgeif);
- mwexec("/sbin/ifconfig {$bridgeif} -autoedge {$realif}");
- }
- $ptpifs = explode(',', $bridge['ptp']);
- foreach ($ptpifs as $ptpif) {
- $realif = get_real_interface($ptpif);
- mwexec("/sbin/ifconfig {$bridgeif} ptp {$realif}");
- }
- $ptpifs = explode(',', $bridge['autoptp']);
- foreach ($ptpifs as $ptpif) {
- $realif = get_real_interface($ptpif);
- mwexec("/sbin/ifconfig {$bridgeif} -autoptp {$realif}");
- }
- $stickyifs = explode(',', $bridge['static']);
- foreach ($stickyifs as $stickyif) {
- $realif = get_real_interface($stickyif);
- mwexec("/sbin/ifconfig {$bridgeif} sticky {$realif}");
- }
- $privateifs = explode(',', $bridge['private']);
- foreach ($privateifs as $privateif) {
- $realif = get_real_interface($privateif);
- mwexec("/sbin/ifconfig {$bridgeif} private {$realif}");
- }
+ if (!empty($bridge['edge'])) {
+ $edgeifs = explode(',', $bridge['edge']);
+ foreach ($edgeifs as $edgeif) {
+ $realif = get_real_interface($edgeif);
+ mwexec("/sbin/ifconfig {$bridgeif} edge {$realif}");
+ }
+ }
+ if (!empty($bridge['autoedge'])) {
+ $edgeifs = explode(',', $bridge['autoedge']);
+ foreach ($edgeifs as $edgeif) {
+ $realif = get_real_interface($edgeif);
+ mwexec("/sbin/ifconfig {$bridgeif} -autoedge {$realif}");
+ }
+ }
+ if (!empty($bridge['ptp'])) {
+ $ptpifs = explode(',', $bridge['ptp']);
+ foreach ($ptpifs as $ptpif) {
+ $realif = get_real_interface($ptpif);
+ mwexec("/sbin/ifconfig {$bridgeif} ptp {$realif}");
+ }
+ }
+ if (!empty($bridge['autoptp'])) {
+ $ptpifs = explode(',', $bridge['autoptp']);
+ foreach ($ptpifs as $ptpif) {
+ $realif = get_real_interface($ptpif);
+ mwexec("/sbin/ifconfig {$bridgeif} -autoptp {$realif}");
+ }
+ }
+ if (!empty($bridge['static'])) {
+ $stickyifs = explode(',', $bridge['static']);
+ foreach ($stickyifs as $stickyif) {
+ $realif = get_real_interface($stickyif);
+ mwexec("/sbin/ifconfig {$bridgeif} sticky {$realif}");
+ }
+ }
+ if (!empty($bridge['private'])) {
+ $privateifs = explode(',', $bridge['private']);
+ foreach ($privateifs as $privateif) {
+ $realif = get_real_interface($privateif);
+ mwexec("/sbin/ifconfig {$bridgeif} private {$realif}");
+ }
+ }
mwexec("/sbin/ifconfig {$bridgeif} up");
OpenPOWER on IntegriCloud