mac80211: Report rejected association to user space SME
authorJouni Malinen <jouni.malinen@atheros.com>
Wed, 1 Apr 2009 14:23:54 +0000 (17:23 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 22 Apr 2009 20:54:39 +0000 (16:54 -0400)
When using nl80211 association, we need to send association response
with a failure code to user space SME instead of just internally
trying to send out the same (re)association request again couple of
times. This fixes problems in association process getting stuck on a
failure when user space is not notified in any way that something
actually failed.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mlme.c

index 4ce5b9c223242b8141495b9a19b592f0e634c6f1..90267afa8e69d2d198cfdf60588d3be2f2304e97 100644 (file)
@@ -1374,6 +1374,11 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
                 * association next time. This works around some broken APs
                 * which do not correctly reject reassociation requests. */
                ifmgd->flags &= ~IEEE80211_STA_PREV_BSSID_SET;
+               cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, len);
+               if (ifmgd->flags & IEEE80211_STA_EXT_SME) {
+                       /* Wait for SME to decide what to do next */
+                       ifmgd->state = IEEE80211_STA_MLME_DISABLED;
+               }
                return;
        }