diff options
Diffstat (limited to 'wifi/java/android/net')
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 0877e62..0134456 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -1631,6 +1631,10 @@ public class WifiStateMachine extends StateMachine { * 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; @@ -2384,6 +2388,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"); @@ -2394,7 +2402,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); |