DO NOT MERGE Dont let supplicant stay in DORMANT state

In some situations, the supplicant stays in a DORMANT
state. This prevents a connections to a network.

As long as the driver is started and we are not in scan-only
mode, issue a reconnect to get supplicant out of DORMANT
state.

Upon failures and network disable, supplicant should get
into an INACTIVE state.

Bug: 3236920
Change-Id: If32b5bfb7fea6c69c4a461db0b2012875b6273b5
This commit is contained in:
Irfan Sheriff
2010-12-01 11:25:36 -08:00
parent e23212bc89
commit f36bde828c

View File

@@ -1038,13 +1038,18 @@ public class WifiStateTracker extends NetworkStateTracker {
}
handleDisconnectedState(newDetailedState, true);
/**
* If we were associated with a network (networkId != -1),
* assume we reached this state because of a failed attempt
* to acquire an IP address, and attempt another connection
* and IP address acquisition in RECONNECT_DELAY_MSECS
* milliseconds.
* We should never let the supplicant stay in DORMANT state
* as long as we are in connect mode and driver is started
*
* We should normally hit a DORMANT state due to a disconnect
* issued after an IP configuration failure. We issue a reconnect
* after RECONNECT_DELAY_MSECS in such a case.
*
* After multiple failures, the network gets disabled and the
* supplicant should reach an INACTIVE state.
*
*/
if (mRunState == RUN_STATE_RUNNING && !mIsScanOnly && networkId != -1) {
if (mRunState == RUN_STATE_RUNNING && !mIsScanOnly) {
sendMessageDelayed(reconnectMsg, RECONNECT_DELAY_MSECS);
} else if (mRunState == RUN_STATE_STOPPING) {
stopDriver();