aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-10-16 15:44:44 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-10-31 19:00:38 -0400
commit4a68ec535ef1043319928f601d633f78e650a16f (patch)
tree5dfae59ca41140dbf97a443f70e22967bc929243 /net/mac80211/mlme.c
parent8216bfe2518c25f16a60485636e477c9a3b795d5 (diff)
mac80211: inform userspace of probe/auth/assoc timeout
I noticed that when for some reason [1] the probe or auth times out, wpa_supplicant doesn't realise this and only tries the next AP when it runs into its own timeout, which is ten seconds, and that's quite long. Fix this by making mac80211 notify userspace that it didn't associate. [1] my wrt350n in mixed B/G/HT mode often runs into this, maybe it's because one of the antennas is broken off and for whatever reason it decides to use that antenna to transmit the response frames (auth, probe); I do see beacons fine so it's not totally broken. Works fine in pure-G mode. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 39bc9c69893b..4cfbb9f09ac9 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -759,6 +759,7 @@ static void ieee80211_direct_probe(struct ieee80211_sub_if_data *sdata,
759 printk(KERN_DEBUG "%s: direct probe to AP %pM timed out\n", 759 printk(KERN_DEBUG "%s: direct probe to AP %pM timed out\n",
760 sdata->dev->name, ifsta->bssid); 760 sdata->dev->name, ifsta->bssid);
761 ifsta->state = IEEE80211_STA_MLME_DISABLED; 761 ifsta->state = IEEE80211_STA_MLME_DISABLED;
762 ieee80211_sta_send_apinfo(sdata, ifsta);
762 return; 763 return;
763 } 764 }
764 765
@@ -789,6 +790,7 @@ static void ieee80211_authenticate(struct ieee80211_sub_if_data *sdata,
789 " timed out\n", 790 " timed out\n",
790 sdata->dev->name, ifsta->bssid); 791 sdata->dev->name, ifsta->bssid);
791 ifsta->state = IEEE80211_STA_MLME_DISABLED; 792 ifsta->state = IEEE80211_STA_MLME_DISABLED;
793 ieee80211_sta_send_apinfo(sdata, ifsta);
792 return; 794 return;
793 } 795 }
794 796
@@ -909,6 +911,7 @@ static void ieee80211_associate(struct ieee80211_sub_if_data *sdata,
909 " timed out\n", 911 " timed out\n",
910 sdata->dev->name, ifsta->bssid); 912 sdata->dev->name, ifsta->bssid);
911 ifsta->state = IEEE80211_STA_MLME_DISABLED; 913 ifsta->state = IEEE80211_STA_MLME_DISABLED;
914 ieee80211_sta_send_apinfo(sdata, ifsta);
912 return; 915 return;
913 } 916 }
914 917