diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-11-19 06:45:42 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-19 11:09:02 -0500 |
commit | a58ce43f2fb17b728395ff530f019ca53c80145f (patch) | |
tree | 1de5d2680d42de12902ccb85e99bc86f63eebf58 /include/net/cfg80211.h | |
parent | 7351c6bd482712e5e3ec9dffc547de0e0863efb0 (diff) |
mac80211: avoid spurious deauth frames/messages
With WEXT, it happens frequently that the SME
requests an authentication but then deauthenticates
right away because some new parameters came along.
Every time this happens we print a deauth message
and send a deauth frame, but both of that is rather
confusing. Avoid it by aborting the authentication
process silently, and telling cfg80211 about that.
The patch looks larger than it really is:
__cfg80211_auth_remove() is split out from
cfg80211_send_auth_timeout(), there's no new code
except __cfg80211_auth_canceled() (a one-liner) and
the mac80211 bits (7 new lines of code).
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index d1e05aeb0c09..a6492e9bca97 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -1839,6 +1839,18 @@ void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len); | |||
1839 | void cfg80211_send_auth_timeout(struct net_device *dev, const u8 *addr); | 1839 | void cfg80211_send_auth_timeout(struct net_device *dev, const u8 *addr); |
1840 | 1840 | ||
1841 | /** | 1841 | /** |
1842 | * __cfg80211_auth_canceled - notify cfg80211 that authentication was canceled | ||
1843 | * @dev: network device | ||
1844 | * @addr: The MAC address of the device with which the authentication timed out | ||
1845 | * | ||
1846 | * When a pending authentication had no action yet, the driver may decide | ||
1847 | * to not send a deauth frame, but in that case must calls this function | ||
1848 | * to tell cfg80211 about this decision. It is only valid to call this | ||
1849 | * function within the deauth() callback. | ||
1850 | */ | ||
1851 | void __cfg80211_auth_canceled(struct net_device *dev, const u8 *addr); | ||
1852 | |||
1853 | /** | ||
1842 | * cfg80211_send_rx_assoc - notification of processed association | 1854 | * cfg80211_send_rx_assoc - notification of processed association |
1843 | * @dev: network device | 1855 | * @dev: network device |
1844 | * @buf: (re)association response frame (header + body) | 1856 | * @buf: (re)association response frame (header + body) |