diff options
Diffstat (limited to 'package/base-files/extra/etc/network/if-pre-up.d/bridge')
-rwxr-xr-x | package/base-files/extra/etc/network/if-pre-up.d/bridge | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/package/base-files/extra/etc/network/if-pre-up.d/bridge b/package/base-files/extra/etc/network/if-pre-up.d/bridge new file mode 100755 index 000000000..766084de1 --- /dev/null +++ b/package/base-files/extra/etc/network/if-pre-up.d/bridge @@ -0,0 +1,32 @@ +#!/bin/sh + +if [ ! -x /usr/sbin/brctl ] +then + exit 0 +fi + +case "$IF_BRIDGE_PORTS" in + "") + exit 0 + ;; + none) + INTERFACES="" + ;; + *) + INTERFACES="$IF_BRIDGE_PORTS" + ;; +esac + +brctl addbr $IFACE || exit 1 + +for IF in $INTERFACES; do + if ! grep -q $IF /proc/net/dev; then + echo "Error: interface '$IF' does not exist!" + brctl delbr $IFACE + exit 1 + fi + brctl addif $IFACE $IF + ip link set up dev $IF +done + +exit 0 |