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