remove all broadcom interfaces from bridges and bring them down completely when wifi down is called
SVN-Revision: 5116
This commit is contained in:
		@@ -70,6 +70,11 @@ setup_interface() {
 | 
				
			|||||||
	proto="${3:-$(config_get "$config" proto)}"
 | 
						proto="${3:-$(config_get "$config" proto)}"
 | 
				
			||||||
	config_get iftype "$config" type
 | 
						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
 | 
						# Setup VLAN interfaces
 | 
				
			||||||
	add_vlan "$iface"
 | 
						add_vlan "$iface"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -141,3 +146,15 @@ setup_interface() {
 | 
				
			|||||||
	esac
 | 
						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
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for dev in $ifname; do
 | 
					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"
 | 
						setup_interface "$dev" "$1"
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,7 +75,17 @@ scan_broadcom() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
disable_broadcom() {
 | 
					disable_broadcom() {
 | 
				
			||||||
	wlc down
 | 
						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() {
 | 
					enable_broadcom() {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user