add protection for bridging interface changes
[openwrt/svn-archive/archive.git] / package / base-files / default / sbin / ifup
1 #!/bin/sh
2 # Copyright (C) 2006 OpenWrt.org
3
4 . /sbin/ifdown "$@"
5
6 config_get iftype "$1" type
7 case "$iftype" in
8 bridge) config_get ifname "$1" ifnames;;
9 *) config_get ifname "$1" ifname;;
10 esac
11
12 for dev in $ifname; do
13 brctl show | grep "$dev" >/dev/null && {
14 # interface is still part of a bridge, correct that
15
16 for brdev in $(brctl show | awk '$2 ~ /^[0-9].*\./ { print $1 }'); do
17 brctl delif "$brdev" "$dev" 2>/dev/null >/dev/null
18 done
19 }
20 setup_interface "$dev" "$1"
21 done