aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMateusz Kulikowski <mateusz.kulikowski@gmail.com>2015-03-31 18:24:34 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-04-03 09:29:30 -0400
commite8f05b0b01ea1593c8cc6311704c227fb0d08b04 (patch)
tree00dda89167ecb3acb13e9622956a942b22b1cf11 /drivers
parent61dbdf36f2f1083a0b224afbb0feb13ad44792a5 (diff)
staging: rtl8192e: Divide rtllib_rx_auth()
Move authentication response processing to rtllib_rx_auth_resp() function. No logic is affected. Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/rtl8192e/rtllib_softmac.c112
1 files changed, 58 insertions, 54 deletions
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index d3fc5a45dbbc..9266bc647bc4 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -2314,73 +2314,77 @@ inline int rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb,
2314 return 0; 2314 return 0;
2315} 2315}
2316 2316
2317inline int rtllib_rx_auth(struct rtllib_device *ieee, struct sk_buff *skb, 2317static void rtllib_rx_auth_resp(struct rtllib_device *ieee, struct sk_buff *skb)
2318 struct rtllib_rx_stats *rx_stats)
2319{ 2318{
2320 u16 errcode; 2319 u16 errcode;
2321 u8 *challenge; 2320 u8 *challenge;
2322 int chlen = 0; 2321 int chlen = 0;
2323 bool bSupportNmode = true, bHalfSupportNmode = false; 2322 bool bSupportNmode = true, bHalfSupportNmode = false;
2324 2323
2325 if (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) { 2324 errcode = auth_parse(skb, &challenge, &chlen);
2326 if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING && 2325 if (0 == errcode) {
2327 (ieee->iw_mode == IW_MODE_INFRA)) { 2326 if (ieee->open_wep || !challenge) {
2328 RTLLIB_DEBUG_MGMT("Received authentication response"); 2327 ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED;
2329 2328 ieee->softmac_stats.rx_auth_rs_ok++;
2330 errcode = auth_parse(skb, &challenge, &chlen); 2329 if (!(ieee->pHTInfo->IOTAction &
2331 if (0 == errcode) { 2330 HT_IOT_ACT_PURE_N_MODE)) {
2332 if (ieee->open_wep || !challenge) { 2331 if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) {
2333 ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED; 2332 if (IsHTHalfNmodeAPs(ieee)) {
2334 ieee->softmac_stats.rx_auth_rs_ok++; 2333 bSupportNmode = true;
2335 if (!(ieee->pHTInfo->IOTAction & 2334 bHalfSupportNmode = true;
2336 HT_IOT_ACT_PURE_N_MODE)) {
2337 if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) {
2338 if (IsHTHalfNmodeAPs(ieee)) {
2339 bSupportNmode = true;
2340 bHalfSupportNmode = true;
2341 } else {
2342 bSupportNmode = false;
2343 bHalfSupportNmode = false;
2344 }
2345 }
2346 }
2347 /* Dummy wirless mode setting to avoid
2348 * encryption issue */
2349 if (bSupportNmode) {
2350 ieee->SetWirelessMode(ieee->dev,
2351 ieee->current_network.mode);
2352 } else { 2335 } else {
2353 /*TODO*/ 2336 bSupportNmode = false;
2354 ieee->SetWirelessMode(ieee->dev, 2337 bHalfSupportNmode = false;
2355 IEEE_G);
2356 } 2338 }
2357
2358 if (ieee->current_network.mode ==
2359 IEEE_N_24G && bHalfSupportNmode) {
2360 netdev_info(ieee->dev,
2361 "======>enter half N mode\n");
2362 ieee->bHalfWirelessN24GMode =
2363 true;
2364 } else
2365 ieee->bHalfWirelessN24GMode =
2366 false;
2367
2368 rtllib_associate_step2(ieee);
2369 } else {
2370 rtllib_auth_challenge(ieee, challenge,
2371 chlen);
2372 } 2339 }
2340 }
2341 /* Dummy wirless mode setting to avoid
2342 * encryption issue */
2343 if (bSupportNmode) {
2344 ieee->SetWirelessMode(ieee->dev,
2345 ieee->current_network.mode);
2373 } else { 2346 } else {
2374 ieee->softmac_stats.rx_auth_rs_err++; 2347 /*TODO*/
2375 RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x", 2348 ieee->SetWirelessMode(ieee->dev,
2376 errcode); 2349 IEEE_G);
2350 }
2377 2351
2352 if (ieee->current_network.mode ==
2353 IEEE_N_24G && bHalfSupportNmode) {
2378 netdev_info(ieee->dev, 2354 netdev_info(ieee->dev,
2379 "Authentication respose status code 0x%x", 2355 "======>enter half N mode\n");
2380 errcode); 2356 ieee->bHalfWirelessN24GMode =
2381 rtllib_associate_abort(ieee); 2357 true;
2382 } 2358 } else
2359 ieee->bHalfWirelessN24GMode =
2360 false;
2361
2362 rtllib_associate_step2(ieee);
2363 } else {
2364 rtllib_auth_challenge(ieee, challenge,
2365 chlen);
2366 }
2367 } else {
2368 ieee->softmac_stats.rx_auth_rs_err++;
2369 RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x",
2370 errcode);
2371
2372 netdev_info(ieee->dev,
2373 "Authentication respose status code 0x%x",
2374 errcode);
2375 rtllib_associate_abort(ieee);
2376 }
2377}
2383 2378
2379inline int rtllib_rx_auth(struct rtllib_device *ieee, struct sk_buff *skb,
2380 struct rtllib_rx_stats *rx_stats)
2381{
2382
2383 if (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) {
2384 if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING &&
2385 (ieee->iw_mode == IW_MODE_INFRA)) {
2386 RTLLIB_DEBUG_MGMT("Received authentication response");
2387 rtllib_rx_auth_resp(ieee, skb);
2384 } else if (ieee->iw_mode == IW_MODE_MASTER) { 2388 } else if (ieee->iw_mode == IW_MODE_MASTER) {
2385 rtllib_rx_auth_rq(ieee, skb); 2389 rtllib_rx_auth_rq(ieee, skb);
2386 } 2390 }