diff options
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index c9db9646025b..8e4a60497bba 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -954,7 +954,7 @@ ieee80211_authenticate(struct ieee80211_sub_if_data *sdata, | |||
954 | sdata->dev->name, wk->bss->cbss.bssid, wk->tries); | 954 | sdata->dev->name, wk->bss->cbss.bssid, wk->tries); |
955 | 955 | ||
956 | ieee80211_send_auth(sdata, 1, wk->auth_alg, wk->ie, wk->ie_len, | 956 | ieee80211_send_auth(sdata, 1, wk->auth_alg, wk->ie, wk->ie_len, |
957 | wk->bss->cbss.bssid, 0); | 957 | wk->bss->cbss.bssid, NULL, 0, 0); |
958 | wk->auth_transaction = 2; | 958 | wk->auth_transaction = 2; |
959 | 959 | ||
960 | wk->timeout = jiffies + IEEE80211_AUTH_TIMEOUT; | 960 | wk->timeout = jiffies + IEEE80211_AUTH_TIMEOUT; |
@@ -1176,7 +1176,8 @@ static void ieee80211_auth_challenge(struct ieee80211_sub_if_data *sdata, | |||
1176 | return; | 1176 | return; |
1177 | ieee80211_send_auth(sdata, 3, wk->auth_alg, | 1177 | ieee80211_send_auth(sdata, 3, wk->auth_alg, |
1178 | elems.challenge - 2, elems.challenge_len + 2, | 1178 | elems.challenge - 2, elems.challenge_len + 2, |
1179 | wk->bss->cbss.bssid, 1); | 1179 | wk->bss->cbss.bssid, |
1180 | wk->key, wk->key_len, wk->key_idx); | ||
1180 | wk->auth_transaction = 4; | 1181 | wk->auth_transaction = 4; |
1181 | } | 1182 | } |
1182 | 1183 | ||
@@ -2175,6 +2176,12 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, | |||
2175 | wk->ie_len = req->ie_len; | 2176 | wk->ie_len = req->ie_len; |
2176 | } | 2177 | } |
2177 | 2178 | ||
2179 | if (req->key && req->key_len) { | ||
2180 | wk->key_len = req->key_len; | ||
2181 | wk->key_idx = req->key_idx; | ||
2182 | memcpy(wk->key, req->key, req->key_len); | ||
2183 | } | ||
2184 | |||
2178 | ssid = ieee80211_bss_get_ie(req->bss, WLAN_EID_SSID); | 2185 | ssid = ieee80211_bss_get_ie(req->bss, WLAN_EID_SSID); |
2179 | memcpy(wk->ssid, ssid + 2, ssid[1]); | 2186 | memcpy(wk->ssid, ssid + 2, ssid[1]); |
2180 | wk->ssid_len = ssid[1]; | 2187 | wk->ssid_len = ssid[1]; |