diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2006-01-31 13:49:42 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-03-22 22:17:01 -0500 |
commit | b6c7658ef8888e82608265d8098d09807997f771 (patch) | |
tree | 85fa8c98d1184b3f2d8b2483cc9adb8323283e9e /net/ieee80211 | |
parent | b10c991fa4cf0f1353228e04671aa793b4b3cf1d (diff) |
[PATCH] softmac: add reassociation code
This patch adds handling of reassociation to softmac when the AP
requests it. Patch from Larry Finger.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/ieee80211')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_assoc.c | 18 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_module.c | 1 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_priv.h | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_assoc.c b/net/ieee80211/softmac/ieee80211softmac_assoc.c index 755b612ce197..c6124fcf27b7 100644 --- a/net/ieee80211/softmac/ieee80211softmac_assoc.c +++ b/net/ieee80211/softmac/ieee80211softmac_assoc.c | |||
@@ -390,3 +390,21 @@ ieee80211softmac_handle_disassoc(struct net_device * dev, | |||
390 | 390 | ||
391 | return 0; | 391 | return 0; |
392 | } | 392 | } |
393 | |||
394 | int | ||
395 | ieee80211softmac_handle_reassoc_req(struct net_device * dev, | ||
396 | struct ieee80211_reassoc_request * resp) | ||
397 | { | ||
398 | struct ieee80211softmac_device *mac = ieee80211_priv(dev); | ||
399 | struct ieee80211softmac_network *network; | ||
400 | |||
401 | function_enter(); | ||
402 | |||
403 | network = ieee80211softmac_get_network_by_bssid(mac, resp->header.addr3); | ||
404 | if (!network) { | ||
405 | dprintkl(KERN_INFO PFX "reassoc request from unknown network\n"); | ||
406 | return 0; | ||
407 | } | ||
408 | ieee80211softmac_assoc(mac, network); | ||
409 | return 0; | ||
410 | } | ||
diff --git a/net/ieee80211/softmac/ieee80211softmac_module.c b/net/ieee80211/softmac/ieee80211softmac_module.c index aa65d5ad4c05..6f99f781bff8 100644 --- a/net/ieee80211/softmac/ieee80211softmac_module.c +++ b/net/ieee80211/softmac/ieee80211softmac_module.c | |||
@@ -41,6 +41,7 @@ struct net_device *alloc_ieee80211softmac(int sizeof_priv) | |||
41 | softmac->ieee->handle_auth = ieee80211softmac_auth_resp; | 41 | softmac->ieee->handle_auth = ieee80211softmac_auth_resp; |
42 | softmac->ieee->handle_deauth = ieee80211softmac_deauth_resp; | 42 | softmac->ieee->handle_deauth = ieee80211softmac_deauth_resp; |
43 | softmac->ieee->handle_assoc_response = ieee80211softmac_handle_assoc_response; | 43 | softmac->ieee->handle_assoc_response = ieee80211softmac_handle_assoc_response; |
44 | softmac->ieee->handle_reassoc_request = ieee80211softmac_handle_reassoc_req; | ||
44 | softmac->ieee->handle_disassoc = ieee80211softmac_handle_disassoc; | 45 | softmac->ieee->handle_disassoc = ieee80211softmac_handle_disassoc; |
45 | softmac->scaninfo = NULL; | 46 | softmac->scaninfo = NULL; |
46 | 47 | ||
diff --git a/net/ieee80211/softmac/ieee80211softmac_priv.h b/net/ieee80211/softmac/ieee80211softmac_priv.h index db0017ac29ea..258da14937be 100644 --- a/net/ieee80211/softmac/ieee80211softmac_priv.h +++ b/net/ieee80211/softmac/ieee80211softmac_priv.h | |||
@@ -156,6 +156,8 @@ int ieee80211softmac_handle_assoc_response(struct net_device * dev, | |||
156 | struct ieee80211_network * network); | 156 | struct ieee80211_network * network); |
157 | int ieee80211softmac_handle_disassoc(struct net_device * dev, | 157 | int ieee80211softmac_handle_disassoc(struct net_device * dev, |
158 | struct ieee80211_disassoc * disassoc); | 158 | struct ieee80211_disassoc * disassoc); |
159 | int ieee80211softmac_handle_reassoc_req(struct net_device * dev, | ||
160 | struct ieee80211_reassoc_request * reassoc); | ||
159 | void ieee80211softmac_assoc_timeout(void *d); | 161 | void ieee80211softmac_assoc_timeout(void *d); |
160 | 162 | ||
161 | /* some helper functions */ | 163 | /* some helper functions */ |