diff options
author | Irfan Sheriff <isheriff@google.com> | 2012-02-13 16:12:48 -0800 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2012-02-13 16:12:48 -0800 |
commit | 4aa9bcd231d09eb62ea64799a2dfacf45a452049 (patch) | |
tree | ce50db118eb6773e70059c282fb30ab9d1f5a6f8 | |
parent | a17032eeb91f709360b6271b71b85e67f729bcc1 (diff) | |
download | frameworks_base-4aa9bcd231d09eb62ea64799a2dfacf45a452049.zip frameworks_base-4aa9bcd231d09eb62ea64799a2dfacf45a452049.tar.gz frameworks_base-4aa9bcd231d09eb62ea64799a2dfacf45a452049.tar.bz2 |
Fix shutdown delay
We were timing out on commands after shutting down supplicant
Bug: 5973030
Change-Id: I442ae6a9ad206406dc5f1c8c27be2456a339bba2
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index b8b7c0e..fb9286e 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -1625,14 +1625,14 @@ public class WifiStateMachine extends StateMachine { private void handleNetworkDisconnect() { if (DBG) log("Stopping DHCP and clearing IP"); - /* In case we were in middle of DHCP operation - restore back powermode */ - handlePostDhcpSetup(); - /* * stop DHCP */ if (mDhcpStateMachine != null) { + /* In case we were in middle of DHCP operation + restore back powermode */ + handlePostDhcpSetup(); + mDhcpStateMachine.sendMessage(DhcpStateMachine.CMD_STOP_DHCP); mDhcpStateMachine.quit(); mDhcpStateMachine = null; @@ -2395,6 +2395,10 @@ public class WifiStateMachine extends StateMachine { public void enter() { if (DBG) log(getName() + "\n"); EventLog.writeEvent(EVENTLOG_WIFI_STATE_CHANGED, getName()); + + /* Send any reset commands to supplicant before shutting it down */ + handleNetworkDisconnect(); + if (DBG) log("stopping supplicant"); if (!mWifiNative.stopSupplicant()) { loge("Failed to stop supplicant"); @@ -2405,7 +2409,6 @@ public class WifiStateMachine extends StateMachine { ++mSupplicantStopFailureToken, 0), SUPPLICANT_RESTART_INTERVAL_MSECS); mNetworkInfo.setIsAvailable(false); - handleNetworkDisconnect(); setWifiState(WIFI_STATE_DISABLING); sendSupplicantConnectionChangedBroadcast(false); mSupplicantStateTracker.sendMessage(CMD_RESET_SUPPLICANT_STATE); |