diff options
| author | Mateusz Kulikowski <mateusz.kulikowski@gmail.com> | 2015-03-31 18:24:34 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-04-03 09:29:30 -0400 |
| commit | e8f05b0b01ea1593c8cc6311704c227fb0d08b04 (patch) | |
| tree | 00dda89167ecb3acb13e9622956a942b22b1cf11 | |
| parent | 61dbdf36f2f1083a0b224afbb0feb13ad44792a5 (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>
| -rw-r--r-- | drivers/staging/rtl8192e/rtllib_softmac.c | 112 |
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 | ||
| 2317 | inline int rtllib_rx_auth(struct rtllib_device *ieee, struct sk_buff *skb, | 2317 | static 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 | ||
| 2379 | inline 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 | } |
