summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-07-01 21:26:49 +0200
committerJohn W. Linville <linville@tuxdriver.com>2009-07-10 15:01:49 -0400
commit0575606b086ad216b7b1976ca9b9a6e711db92f0 (patch)
treeff918077cd4a2ebdf9abca7ad6314bb020c89647
parent7ebbe6bd51a259e16608b3fd7b578f5dd1292a45 (diff)
downloadop-kernel-dev-0575606b086ad216b7b1976ca9b9a6e711db92f0.zip
op-kernel-dev-0575606b086ad216b7b1976ca9b9a6e711db92f0.tar.gz
mac80211: tell SME about real auth state
When the auth algorithm is rejected, but we don't have another one to try, we will eventually retry but that isn't useful -- we'll then do it again and again until we eventually give up. Instead, we should let the SME know and go into disabled state. The same applies for situations where the AP rejects with any other status code. Additionally, when trying the next auth algorithm, we should reset the auth_tries so that just a single lost frame doesn't lead to us giving up on the third auth algorithm. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/mlme.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 383392b..58135a5 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1511,9 +1511,15 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
!ieee80211_sta_wep_configured(sdata))
continue;
ifmgd->auth_alg = algs[pos];
- break;
+ ifmgd->auth_tries = 0;
+ return;
}
}
+ /* nothing else to try -- give up */
+ cfg80211_send_rx_auth(sdata->dev, (u8 *) mgmt, len,
+ GFP_KERNEL);
+ ifmgd->state = IEEE80211_STA_MLME_DISABLED;
+ ieee80211_recalc_idle(sdata->local);
return;
}
OpenPOWER on IntegriCloud