From 47b8bdb173893084115ead905ea7ffe847840ca2 Mon Sep 17 00:00:00 2001 From: Glen Kuhne Date: Thu, 23 Mar 2017 12:54:08 -0700 Subject: Reset & Stop updating WifiInfo outside ConnectMode Added a WifiInfo reset call on entering and exiting ConnectModeState, as well as setting WifiInfo SupplicantState to Disconnected. Also removed handling of SUPPLICANT_STATE_CHANGE_EVENT from ScanModeState, which results in no updates to WifiInfo. This fixes an issue where WifiConnectivityManager could become frozen due to wpa_supplicant shenanigans in ScanModeState. Test: Added a unit test Bug: 36416438 Change-Id: Id8f4bd6434937ece08978a6186f6a9b1a6ab9c37 --- service/java/com/android/server/wifi/WifiStateMachine.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'service') diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index 17b8b2f40..791c170d8 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -4429,10 +4429,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss case CMD_START_SCAN: handleScanRequest(message); break; - case WifiMonitor.SUPPLICANT_STATE_CHANGE_EVENT: - SupplicantState state = handleSupplicantStateChange(message); - if (mVerboseLoggingEnabled) log("SupplicantState= " + state); - break; default: return NOT_HANDLED; } @@ -4637,7 +4633,8 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss if (!mWifiNative.removeAllNetworks()) { loge("Failed to remove networks on entering connect mode"); } - + mWifiInfo.reset(); + mWifiInfo.setSupplicantState(SupplicantState.DISCONNECTED); // Let the system know that wifi is available in client mode. setWifiState(WIFI_STATE_ENABLED); @@ -4669,6 +4666,8 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss if (!mWifiNative.removeAllNetworks()) { loge("Failed to remove networks on exiting connect mode"); } + mWifiInfo.reset(); + mWifiInfo.setSupplicantState(SupplicantState.DISCONNECTED); } @Override -- cgit v1.2.3