wpa_supplicant: fix regressions introduced by the ibss-rsn changes
[openwrt.git] / package / hostapd / files / wpa_supplicant.sh
index 1ab6c66..bbd928b 100644 (file)
@@ -3,6 +3,8 @@ wpa_supplicant_setup_vif() {
        local driver="$2"
        local key="$key"
        local options="$3"
+       local freq=""
+       [ -n "$4" ] && freq="frequency=$4"
 
        # wpa_supplicant should use wext for mac80211 cards
        [ "$driver" = "mac80211" ] && driver='wext'
@@ -23,7 +25,7 @@ wpa_supplicant_setup_vif() {
                config_set "$vif" bridge "$bridge"
        }
 
-       local mode ifname wds
+       local mode ifname wds modestr=""
        config_get mode "$vif" mode
        config_get ifname "$vif" ifname
        config_get_bool wds "$vif" wds 0
@@ -31,6 +33,7 @@ wpa_supplicant_setup_vif() {
                echo "wpa_supplicant_setup_vif($ifname): Refusing to bridge $mode mode interface"
                return 1
        }
+       [ "$mode" = "adhoc" ] && modestr="mode=1"
 
        case "$enc" in
                *none*)
@@ -59,7 +62,8 @@ wpa_supplicant_setup_vif() {
                ;;
                *psk*)
                        key_mgmt='WPA-PSK'
-                       config_get_bool usepassphrase "$vif" passphrase 1
+                       [ "$mode" = "adhoc" -a "$driver" != "nl80211" ] && key_mgmt='WPA-NONE'
+                       config_get_bool usepassphrase "$vif" usepassphrase 1
                        if [ "$usepassphrase" = "1" ]; then
                                passphrase="psk=\"${key}\""
                        else
@@ -87,9 +91,11 @@ wpa_supplicant_setup_vif() {
                                        pairwise='pairwise=CCMP'
                                        group='group=CCMP'
                                        config_get identity "$vif" identity
+                                       config_get client_cert "$vif" client_cert
                                        config_get priv_key "$vif" priv_key
                                        config_get priv_key_pwd "$vif" priv_key_pwd
                                        identity="identity=\"$identity\""
+                                       client_cert="client_cert=\"$client_cert\""
                                        priv_key="private_key=\"$priv_key\""
                                        priv_key_pwd="private_key_passwd=\"$priv_key_pwd\""
                                ;;
@@ -121,17 +127,20 @@ wpa_supplicant_setup_vif() {
        cat > /var/run/wpa_supplicant-$ifname.conf <<EOF
 ctrl_interface=/var/run/wpa_supplicant-$ifname
 network={
+       $modestr
        scan_ssid=1
        ssid="$ssid"
        $bssid
        key_mgmt=$key_mgmt
        $proto
+       $freq
        $ieee80211w
        $passphrase
        $pairwise
        $group
        $eap_type
        $ca_cert
+       $client_cert
        $priv_key
        $priv_key_pwd
        $phase2
This page took 0.027417 seconds and 4 git commands to generate.