diff options
| -rwxr-xr-x | package/madwifi/files/lib/wifi/madwifi.sh | 65 | ||||
| -rw-r--r-- | package/wireless-tools/Makefile | 4 | ||||
| -rw-r--r-- | package/wireless-tools/files/wifi.sh | 66 | 
3 files changed, 69 insertions, 66 deletions
diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh index dd030ba16..2a8465b9f 100755 --- a/package/madwifi/files/lib/wifi/madwifi.sh +++ b/package/madwifi/files/lib/wifi/madwifi.sh @@ -45,71 +45,6 @@ scan_atheros() {  	config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${sta:+$sta }${wds:+$wds }"  } -hostapd_setup_vif() { -	local vif="$1" -	local driver="$2" -	local hostapd_cfg= - -	# Examples: -	# psk-mixed/tkip 	=> WPA1+2 PSK, TKIP -	# wpa-psk2/tkip+aes	=> WPA2 PSK, CCMP+TKIP -	# wpa2/tkip+aes 	=> WPA2 RADIUS, CCMP+TKIP -	# ... - -	# TODO: move this parsing function somewhere generic, so that -	# later it can be reused by drivers that don't use hostapd -	 -	# crypto defaults: WPA2 vs WPA1 -	case "$enc" in -		wpa2*|WPA2*|*PSK2*|*psk2*) -			wpa=2 -			crypto="CCMP" -		;; -		*mixed*) -			wpa=3 -			crypto="CCMP TKIP" -		;; -		*)  -			wpa=1 -			crypto="TKIP" -		;; -	esac - -	# explicit override for crypto setting -	case "$enc" in -		*tkip+aes|*TKIP+AES|*tkip+ccmp|*TKIP+CCMP) crypto="CCMP TKIP";; -		*tkip|*TKIP) crypto="TKIP";; -		*aes|*AES|*ccmp|*CCMP) crypto="CCMP";; -	esac -	 -	# use crypto/auth settings for building the hostapd config -	case "$enc" in -		*psk*|*PSK*) -			config_get psk "$vif" key -			append hostapd_cfg "wpa_passphrase=$psk" "$N" -		;; -		*wpa*|*WPA*) -		# FIXME: add wpa+radius here -		;; -		*) -			return 0; -		;; -	esac -	config_get ifname "$vif" ifname -	config_get bridge "$vif" bridge -	config_get ssid "$vif" ssid -	cat > /var/run/hostapd-$ifname.conf <<EOF -driver=$driver -interface=$ifname -${bridge:+bridge=$bridge} -ssid=$ssid -debug=0 -wpa=$wpa -wpa_pairwise=$crypto -$hostapd_cfg -EOF -	hostapd -B /var/run/hostapd-$ifname.conf -}  disable_atheros() (  	local device="$1" diff --git a/package/wireless-tools/Makefile b/package/wireless-tools/Makefile index f07a40640..6c5112662 100644 --- a/package/wireless-tools/Makefile +++ b/package/wireless-tools/Makefile @@ -61,7 +61,9 @@ define Build/UninstallDev  endef  define Package/wireless-tools/install -	$(INSTALL_DIR)  $(1)/usr/lib +	$(INSTALL_DIR) $(1)/lib/wifi +	$(INSTALL_DATA)  ./files/wifi.sh $(1)/lib/wifi/generic.sh +	$(INSTALL_DIR) $(1)/usr/lib  	$(INSTALL_BIN) $(PKG_BUILD_DIR)/libiw.so.28 $(1)/usr/lib/  	$(INSTALL_DIR) $(1)/usr/sbin  	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/iw{config,getid,list,priv,spy} $(1)/usr/sbin/ diff --git a/package/wireless-tools/files/wifi.sh b/package/wireless-tools/files/wifi.sh new file mode 100644 index 000000000..529462e6c --- /dev/null +++ b/package/wireless-tools/files/wifi.sh @@ -0,0 +1,66 @@ +hostapd_setup_vif() { +	local vif="$1" +	local driver="$2" +	local hostapd_cfg= + +	# Examples: +	# psk-mixed/tkip 	=> WPA1+2 PSK, TKIP +	# wpa-psk2/tkip+aes	=> WPA2 PSK, CCMP+TKIP +	# wpa2/tkip+aes 	=> WPA2 RADIUS, CCMP+TKIP +	# ... + +	# TODO: move this parsing function somewhere generic, so that +	# later it can be reused by drivers that don't use hostapd +	 +	# crypto defaults: WPA2 vs WPA1 +	case "$enc" in +		wpa2*|WPA2*|*PSK2*|*psk2*) +			wpa=2 +			crypto="CCMP" +		;; +		*mixed*) +			wpa=3 +			crypto="CCMP TKIP" +		;; +		*)  +			wpa=1 +			crypto="TKIP" +		;; +	esac + +	# explicit override for crypto setting +	case "$enc" in +		*tkip+aes|*TKIP+AES|*tkip+ccmp|*TKIP+CCMP) crypto="CCMP TKIP";; +		*tkip|*TKIP) crypto="TKIP";; +		*aes|*AES|*ccmp|*CCMP) crypto="CCMP";; +	esac +	 +	# use crypto/auth settings for building the hostapd config +	case "$enc" in +		*psk*|*PSK*) +			config_get psk "$vif" key +			append hostapd_cfg "wpa_passphrase=$psk" "$N" +		;; +		*wpa*|*WPA*) +		# FIXME: add wpa+radius here +		;; +		*) +			return 0; +		;; +	esac +	config_get ifname "$vif" ifname +	config_get bridge "$vif" bridge +	config_get ssid "$vif" ssid +	cat > /var/run/hostapd-$ifname.conf <<EOF +driver=$driver +interface=$ifname +${bridge:+bridge=$bridge} +ssid=$ssid +debug=0 +wpa=$wpa +wpa_pairwise=$crypto +$hostapd_cfg +EOF +	hostapd -B /var/run/hostapd-$ifname.conf +} +  | 
