diff options
author | Joseph Jezak <josejx@gentoo.org> | 2006-06-11 12:00:37 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-07-05 13:42:58 -0400 |
commit | cb74c432e321ed645b6cd88b77edc15f9478efbd (patch) | |
tree | 3170ef16223986c9743315cd05972abc2d9b84b5 /net/ieee80211/softmac/ieee80211softmac_auth.c | |
parent | 4359219425a0918a72775480e125fbb077de338d (diff) |
[PATCH] SoftMAC: Prevent multiple authentication attempts on the same network
This patch addresses the "No queue exists" messages commonly seen during
authentication and associating. These appear due to scheduling multiple
authentication attempts on the same network. To prevent this, I added a
flag to stop multiple authentication attempts by the association layer.
I also added a check to the wx handler to see if we're connecting to a
different network than the one already in progress. This scenario was
causing multiple requests on the same network because the network BSSID
was not being updated despite the fact that the ESSID changed.
Signed-off-by: Joseph Jezak <josejx@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/ieee80211/softmac/ieee80211softmac_auth.c')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_auth.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_auth.c b/net/ieee80211/softmac/ieee80211softmac_auth.c index 90b8484e509b..ebc33ca6e692 100644 --- a/net/ieee80211/softmac/ieee80211softmac_auth.c +++ b/net/ieee80211/softmac/ieee80211softmac_auth.c | |||
@@ -36,8 +36,9 @@ ieee80211softmac_auth_req(struct ieee80211softmac_device *mac, | |||
36 | struct ieee80211softmac_auth_queue_item *auth; | 36 | struct ieee80211softmac_auth_queue_item *auth; |
37 | unsigned long flags; | 37 | unsigned long flags; |
38 | 38 | ||
39 | if (net->authenticating) | 39 | if (net->authenticating || net->authenticated) |
40 | return 0; | 40 | return 0; |
41 | net->authenticating = 1; | ||
41 | 42 | ||
42 | /* Add the network if it's not already added */ | 43 | /* Add the network if it's not already added */ |
43 | ieee80211softmac_add_network(mac, net); | 44 | ieee80211softmac_add_network(mac, net); |
@@ -92,7 +93,6 @@ ieee80211softmac_auth_queue(void *data) | |||
92 | return; | 93 | return; |
93 | } | 94 | } |
94 | net->authenticated = 0; | 95 | net->authenticated = 0; |
95 | net->authenticating = 1; | ||
96 | /* add a timeout call so we eventually give up waiting for an auth reply */ | 96 | /* add a timeout call so we eventually give up waiting for an auth reply */ |
97 | schedule_delayed_work(&auth->work, IEEE80211SOFTMAC_AUTH_TIMEOUT); | 97 | schedule_delayed_work(&auth->work, IEEE80211SOFTMAC_AUTH_TIMEOUT); |
98 | auth->retry--; | 98 | auth->retry--; |