mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
include /lib/wifi
 | 
						|
 | 
						|
setup_broadcom_wds() {
 | 
						|
	local iface="$1"
 | 
						|
	local remote="$(wlc ifname "$iface" wdsmac)"
 | 
						|
 | 
						|
	[ -z "$remote" ] && return
 | 
						|
	
 | 
						|
	config_cb() {
 | 
						|
		[ -z "$CONFIG_SECTION" ] && return
 | 
						|
	
 | 
						|
		config_get type "$CONFIG_SECTION" TYPE
 | 
						|
		[ "$type" = "wifi-iface" ] || return
 | 
						|
		
 | 
						|
		config_get network "$CONFIG_SECTION" network
 | 
						|
		[ -z "$network" ] && return
 | 
						|
		
 | 
						|
		config_get addr "$CONFIG_SECTION" bssid
 | 
						|
		addr=$(echo "$addr" | tr 'A-F' 'a-f')
 | 
						|
		[ "$addr" = "$remote" ] && {
 | 
						|
			local cfg="$CONFIG_SECTION"
 | 
						|
			
 | 
						|
			include /lib/network
 | 
						|
			scan_interfaces
 | 
						|
 | 
						|
			setup_interface "$iface" "$network"
 | 
						|
			
 | 
						|
			config_get encryption "$cfg" encryption
 | 
						|
			config_get key "$cfg" key
 | 
						|
			config_get ssid "$cfg" ssid
 | 
						|
		
 | 
						|
			[ "$encryption" != "none" ] && {
 | 
						|
				sleep 5
 | 
						|
				case "$encryption" in
 | 
						|
					psk|PSK)
 | 
						|
						nas4not "$network" "$iface" up auto tkip psk "$key" "$ssid"
 | 
						|
						;;
 | 
						|
					psk2|PSK2)
 | 
						|
						nas4not "$network" "$iface" up auto aes psk "$key" "$ssid"
 | 
						|
						;;
 | 
						|
					psk+psk2|psk2+psk|PSK+PSK2|PSK2+PSK)
 | 
						|
						nas4not "$network" "$iface" up auto aes+tkip psk "$key" "$ssid"
 | 
						|
						;;
 | 
						|
					*)
 | 
						|
						nas4not lan "$iface" up auto aes "$encryption" "$key" "$ssid"
 | 
						|
						;;
 | 
						|
					esac
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	config_load wireless
 | 
						|
}
 | 
						|
 | 
						|
case "$ACTION" in
 | 
						|
	add|register)
 | 
						|
		[ "${INTERFACE%%0.*}" = wds ] && setup_broadcom_wds "$INTERFACE"
 | 
						|
	;;
 | 
						|
esac
 |