From bf844308a2fca21ee590fbf1b5686495c9ca2aeb Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Tue, 12 Oct 2010 10:50:07 -0700 Subject: 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 --- wifi/java/android/net/wifi/WifiStateTracker.java | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'wifi') diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java index 281077c..06f6696 100644 --- a/wifi/java/android/net/wifi/WifiStateTracker.java +++ b/wifi/java/android/net/wifi/WifiStateTracker.java @@ -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; } -- cgit v1.1