From 837b4b6f805cf07201f22f1b9fc9bfffd86dc75c Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Tue, 31 Jan 2006 19:49:42 +0100 Subject: [PATCH] --- yaml --- r: 23302 b: refs/heads/master c: b6c7658ef8888e82608265d8098d09807997f771 h: refs/heads/master v: v3 --- [refs] | 2 +- .../ieee80211/softmac/ieee80211softmac_assoc.c | 18 ++++++++++++++++++ .../softmac/ieee80211softmac_module.c | 1 + .../ieee80211/softmac/ieee80211softmac_priv.h | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5abe9d42ab94..63aedab635be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b10c991fa4cf0f1353228e04671aa793b4b3cf1d +refs/heads/master: b6c7658ef8888e82608265d8098d09807997f771 diff --git a/trunk/net/ieee80211/softmac/ieee80211softmac_assoc.c b/trunk/net/ieee80211/softmac/ieee80211softmac_assoc.c index 755b612ce197..c6124fcf27b7 100644 --- a/trunk/net/ieee80211/softmac/ieee80211softmac_assoc.c +++ b/trunk/net/ieee80211/softmac/ieee80211softmac_assoc.c @@ -390,3 +390,21 @@ ieee80211softmac_handle_disassoc(struct net_device * dev, 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/trunk/net/ieee80211/softmac/ieee80211softmac_module.c b/trunk/net/ieee80211/softmac/ieee80211softmac_module.c index aa65d5ad4c05..6f99f781bff8 100644 --- a/trunk/net/ieee80211/softmac/ieee80211softmac_module.c +++ b/trunk/net/ieee80211/softmac/ieee80211softmac_module.c @@ -41,6 +41,7 @@ struct net_device *alloc_ieee80211softmac(int sizeof_priv) 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/trunk/net/ieee80211/softmac/ieee80211softmac_priv.h b/trunk/net/ieee80211/softmac/ieee80211softmac_priv.h index db0017ac29ea..258da14937be 100644 --- a/trunk/net/ieee80211/softmac/ieee80211softmac_priv.h +++ b/trunk/net/ieee80211/softmac/ieee80211softmac_priv.h @@ -156,6 +156,8 @@ int ieee80211softmac_handle_assoc_response(struct net_device * dev, 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 */