diff options
| -rw-r--r-- | package/wpa_supplicant/files/wpa_supplicant.sh | 24 | 
1 files changed, 15 insertions, 9 deletions
| diff --git a/package/wpa_supplicant/files/wpa_supplicant.sh b/package/wpa_supplicant/files/wpa_supplicant.sh index 5053d1e28..1d1367a17 100644 --- a/package/wpa_supplicant/files/wpa_supplicant.sh +++ b/package/wpa_supplicant/files/wpa_supplicant.sh @@ -1,25 +1,31 @@  wpa_supplicant_setup_vif() {  	local vif="$1"  	local driver="$2" -	 +	local key="$key" +  	# wpa_supplicant should use wext for mac80211 cards  	[ "$driver" = "mac80211" ] && driver='wext' +	# make sure we have the psk +	[ -n "$key" ] || { +		config_get key "$vif" key +	} +  	case "$enc" in -		PSK|psk|psk2|PSK2) +		*psk*)  			key_mgmt='WPA-PSK'  			config_get_bool usepassphrase "$vif" passphrase 1  			case "$enc" in -				psk|PSK) -					proto='WPA' +				*psk2*) +					proto='RSN'  					if [ "$usepassphrase" = "1" ]; then  						passphrase="psk=\"${key}\""  					else  						passphrase="psk=${key}"  					fi  				;; -				psk2|PSK2) -					proto='RSN' +				*psk*) +					proto='WPA'  					if [ "$usepassphrase" = "1" ]; then  						passphrase="psk=\"${key}\""  					else @@ -28,13 +34,13 @@ wpa_supplicant_setup_vif() {  				;;  			esac  		;; -		WPA|wpa|WPA2|wpa2|8021x|8021X) +		*wpa*|*8021x*)  			proto='WPA2'  			key_mgmt='WPA-EAP'  			config_get ca_cert "$vif" ca_cert  			ca_cert=${ca_cert:+"ca_cert=\"$ca_cert\""}  			case "$eap_type" in -				tls|TLS) +				tls)  					pairwise='pairwise=CCMP'  					group='group=CCMP'  					config_get priv_key "$vif" priv_key @@ -42,7 +48,7 @@ wpa_supplicant_setup_vif() {  					priv_key="private_key=\"$priv_key\""  					priv_key_pwd="private_key_passwd=\"$priv_key_pwd\""  				;; -				peap|PEAP|ttls|TTLS) +				peap|ttls)  					config_get auth "$vif" auth  					config_get identity "$vif" identity  					config_get password "$vif" password | 
