fix start driver for corner cases DO NOT MERGE

- Force a start when in RUN_STATE_STOPPING since there
could have a stop driver in that state
- When a driver started event is received is received
from the supplicant, force a reconnect since we could
have out of an intermediate stop event that would have
forced the run state to STOPPED

Bug: 3087621
Change-Id: I3652747a267a3da8349a9fd5c4065d3837a0c545
This commit is contained in:
Irfan Sheriff
2010-10-12 10:50:07 -07:00
parent 692cac9fdd
commit bf844308a2

View File

@@ -1285,15 +1285,13 @@ public class WifiStateTracker extends NetworkStateTracker {
if (macaddr != null) {
mWifiInfo.setMacAddress(macaddr);
}
if (mRunState == RUN_STATE_STARTING) {
mRunState = RUN_STATE_RUNNING;
if (!mIsScanOnly) {
reconnectCommand();
} else {
// In some situations, supplicant needs to be kickstarted to
// start the background scanning
scan(true);
}
mRunState = RUN_STATE_RUNNING;
if (!mIsScanOnly) {
reconnectCommand();
} else {
// In some situations, supplicant needs to be kickstarted to
// start the background scanning
scan(true);
}
}
break;
@@ -1613,12 +1611,10 @@ public class WifiStateTracker extends NetworkStateTracker {
}
public synchronized boolean restart() {
if (mRunState == RUN_STATE_STOPPED) {
if (isDriverStopped()) {
mRunState = RUN_STATE_STARTING;
resetConnections(true);
return startDriver();
} else if (mRunState == RUN_STATE_STOPPING) {
mRunState = RUN_STATE_STARTING;
}
return true;
}