From: Johannes Berg <[EMAIL PROTECTED]>
Date: Tue Jan 31 19:49:42 2006 +0100
Subject: [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 <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
net/ieee80211/softmac/ieee80211softmac_assoc.c | 18 ++++++++++++++++++
net/ieee80211/softmac/ieee80211softmac_module.c | 1 +
net/ieee80211/softmac/ieee80211softmac_priv.h | 2 ++
3 files changed, 21 insertions(+), 0 deletions(-)
a9453e10d7680193deb4399714ecd3e11b135abb
diff --git a/net/ieee80211/softmac/ieee80211softmac_assoc.c
b/net/ieee80211/softmac/ieee80211softmac_assoc.c
index 755b612..c6124fc 100644
--- a/net/ieee80211/softmac/ieee80211softmac_assoc.c
+++ b/net/ieee80211/softmac/ieee80211softmac_assoc.c
@@ -390,3 +390,21 @@ ieee80211softmac_handle_disassoc(struct
return 0;
}
+
+int
+ieee80211softmac_handle_reassoc_req(struct net_device * dev,
+ struct ieee80211_reassoc_request * resp)
+{
+ struct ieee80211softmac_device *mac = ieee80211_priv(dev);
+ struct ieee80211softmac_network *network;
+
+ function_enter();
+
+ network = ieee80211softmac_get_network_by_bssid(mac,
resp->header.addr3);
+ if (!network) {
+ dprintkl(KERN_INFO PFX "reassoc request from unknown
network\n");
+ return 0;
+ }
+ ieee80211softmac_assoc(mac, network);
+ return 0;
+}
diff --git a/net/ieee80211/softmac/ieee80211softmac_module.c
b/net/ieee80211/softmac/ieee80211softmac_module.c
index aa65d5a..6f99f78 100644
--- a/net/ieee80211/softmac/ieee80211softmac_module.c
+++ b/net/ieee80211/softmac/ieee80211softmac_module.c
@@ -41,6 +41,7 @@ struct net_device *alloc_ieee80211softma
softmac->ieee->handle_auth = ieee80211softmac_auth_resp;
softmac->ieee->handle_deauth = ieee80211softmac_deauth_resp;
softmac->ieee->handle_assoc_response =
ieee80211softmac_handle_assoc_response;
+ softmac->ieee->handle_reassoc_request =
ieee80211softmac_handle_reassoc_req;
softmac->ieee->handle_disassoc = ieee80211softmac_handle_disassoc;
softmac->scaninfo = NULL;
diff --git a/net/ieee80211/softmac/ieee80211softmac_priv.h
b/net/ieee80211/softmac/ieee80211softmac_priv.h
index db0017a..258da14 100644
--- a/net/ieee80211/softmac/ieee80211softmac_priv.h
+++ b/net/ieee80211/softmac/ieee80211softmac_priv.h
@@ -156,6 +156,8 @@ int ieee80211softmac_handle_assoc_respon
struct ieee80211_network * network);
int ieee80211softmac_handle_disassoc(struct net_device * dev,
struct ieee80211_disassoc * disassoc);
+int ieee80211softmac_handle_reassoc_req(struct net_device * dev,
+ struct ieee80211_reassoc_request *
reassoc);
void ieee80211softmac_assoc_timeout(void *d);
/* some helper functions */
--
1.2.4
--
John W. Linville
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html