remove all broadcom interfaces from bridges and bring them down completely when wifi down is called
SVN-Revision: 5116
This commit is contained in:
parent
5fee2188f5
commit
313556e91e
3 changed files with 28 additions and 8 deletions
|
@ -70,6 +70,11 @@ setup_interface() {
|
|||
proto="${3:-$(config_get "$config" proto)}"
|
||||
config_get iftype "$config" type
|
||||
|
||||
ifconfig "$iface" 2>/dev/null >/dev/null && {
|
||||
# make sure the interface is removed from any existing bridge
|
||||
unbridge "$iface"
|
||||
}
|
||||
|
||||
# Setup VLAN interfaces
|
||||
add_vlan "$iface"
|
||||
|
||||
|
@ -141,3 +146,15 @@ setup_interface() {
|
|||
esac
|
||||
}
|
||||
|
||||
unbridge() {
|
||||
local dev="$1"
|
||||
local brdev
|
||||
|
||||
brctl show | grep "$dev" >/dev/null && {
|
||||
# interface is still part of a bridge, correct that
|
||||
|
||||
for brdev in $(brctl show | awk '$2 ~ /^[0-9].*\./ { print $1 }'); do
|
||||
brctl delif "$brdev" "$dev" 2>/dev/null >/dev/null
|
||||
done
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,12 +10,5 @@ case "$iftype" in
|
|||
esac
|
||||
|
||||
for dev in $ifname; do
|
||||
brctl show | grep "$dev" >/dev/null && {
|
||||
# interface is still part of a bridge, correct that
|
||||
|
||||
for brdev in $(brctl show | awk '$2 ~ /^[0-9].*\./ { print $1 }'); do
|
||||
brctl delif "$brdev" "$dev" 2>/dev/null >/dev/null
|
||||
done
|
||||
}
|
||||
setup_interface "$dev" "$1"
|
||||
done
|
||||
|
|
|
@ -75,7 +75,17 @@ scan_broadcom() {
|
|||
|
||||
disable_broadcom() {
|
||||
wlc down
|
||||
ifconfig wl0 down
|
||||
(
|
||||
include /lib/network
|
||||
scan_interfaces
|
||||
|
||||
# make sure the interfaces are down and removed from all bridges
|
||||
for dev in wl0 wl0.1 wl0.2 wl0.3; do
|
||||
ifconfig "$dev" down 2>/dev/null >/dev/null && {
|
||||
unbridge "$dev"
|
||||
}
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
enable_broadcom() {
|
||||
|
|
Loading…
Reference in a new issue