summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared H.Hudson <jhhudso@gentoo.org>2004-03-18 11:31:04 +0000
committerJared H.Hudson <jhhudso@gentoo.org>2004-03-18 11:31:04 +0000
commit06f49f4357b76fd892c84645a20c37deae399334 (patch)
treeb6708fa12d8d67f9131387763a92815ae1b67a2c /net-misc/bridge-utils/files/bridge.rc
parentChangelog fix (diff)
downloadhistorical-06f49f4357b76fd892c84645a20c37deae399334.tar.gz
historical-06f49f4357b76fd892c84645a20c37deae399334.tar.bz2
historical-06f49f4357b76fd892c84645a20c37deae399334.zip
Added init script to create network bridges using brctl (bug #21418)
Diffstat (limited to 'net-misc/bridge-utils/files/bridge.rc')
-rw-r--r--net-misc/bridge-utils/files/bridge.rc47
1 files changed, 47 insertions, 0 deletions
diff --git a/net-misc/bridge-utils/files/bridge.rc b/net-misc/bridge-utils/files/bridge.rc
new file mode 100644
index 000000000000..388e47356321
--- /dev/null
+++ b/net-misc/bridge-utils/files/bridge.rc
@@ -0,0 +1,47 @@
+#!/sbin/runscript
+
+depend() {
+ use modules
+}
+
+start() {
+ for b in ${bridge}
+ do
+ ebegin "Create Bridge ${b}"
+ /sbin/brctl addbr ${b} || {
+ retval=$?
+ eend ${retval} "Failed to create bridge ${b}"
+ continue
+ }
+ for i in $(eval echo \$\{bridge_${b}_devices\})
+ do
+ /sbin/brctl addif ${b} ${i} || {
+ retval=$?
+ eend ${retval} "Failed to add interface ${i}"
+ continue
+ }
+ ifconfig ${i} 0.0.0.0 promisc || \
+ eend $? "Failed to set up interface ${i}"
+ done
+ done
+}
+
+stop() {
+ for b in ${bridge}
+ do
+ ebegin "Destroy Bridge ${b}"
+ for i in $(eval echo \$\{bridge_${b}_devices\})
+ do
+ ifconfig ${i} down || \
+ eend $? "Failed to set down interface ${i}"
+ /sbin/brctl delif ${b} ${i} || {
+ retval=$?
+ eend ${retval} "Failed to del interface ${i}"
+ return ${retval}
+ }
+ done
+ /sbin/brctl delbr ${b} || \
+ eend ${retval} "Failed to destroy bridge ${b}"
+ done
+ eend $? "Failed to stop bridge"
+}