diff options
author | vandwalle <vandwalle@google.com> | 2014-10-15 12:32:45 -0700 |
---|---|---|
committer | vandwalle <vandwalle@google.com> | 2014-10-15 14:45:43 -0700 |
commit | 078a7527951b1e8fb7722ab930760730cf54e572 (patch) | |
tree | dbca007a4244cefd0b636e1e6b49eb51bbe50d1c | |
parent | a5283c01ac413e378e2261050cac3a6d6e9cf385 (diff) | |
download | wifi-078a7527951b1e8fb7722ab930760730cf54e572.tar.gz |
fix bssid blacklisting
Bug:17960587
Bug:17966377
Change-Id: I6ead5386f961e8bd0705ceea190752dd20f7e38a
-rw-r--r-- | service/java/com/android/server/wifi/WifiConfigStore.java | 16 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiStateMachine.java | 19 |
2 files changed, 29 insertions, 6 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigStore.java b/service/java/com/android/server/wifi/WifiConfigStore.java index 7bca628bf..604871ad8 100644 --- a/service/java/com/android/server/wifi/WifiConfigStore.java +++ b/service/java/com/android/server/wifi/WifiConfigStore.java @@ -3106,10 +3106,6 @@ public class WifiConfigStore extends IpConfigStore { for (WifiConfiguration config : mConfiguredNetworks.values()) { boolean found = false; - if (config.autoJoinStatus >= WifiConfiguration.AUTO_JOIN_DELETED) { - continue; - } - if (config.SSID == null || !config.SSID.equals(SSID)) { // SSID mismatch if (VVDBG) { @@ -3145,7 +3141,7 @@ public class WifiConfigStore extends IpConfigStore { if (found) { numConfigFound ++; - if (config.autoJoinStatus == WifiConfiguration.AUTO_JOIN_DELETED) { + if (config.autoJoinStatus >= WifiConfiguration.AUTO_JOIN_DELETED) { if (VVDBG) { loge("updateSavedNetworkHistory(): found a deleted, skip it... " + config.configKey()); @@ -3162,8 +3158,16 @@ public class WifiConfigStore extends IpConfigStore { } // Adding a new BSSID - if (config.scanResultCache.get(scanResult.BSSID) == null) { + ScanResult result = config.scanResultCache.get(scanResult.BSSID); + if (result == null) { config.dirty = true; + } else { + // transfer the black list status + scanResult.autoJoinStatus = result.autoJoinStatus; + scanResult.blackListTimestamp = result.blackListTimestamp; + scanResult.numIpConfigFailures = result.numIpConfigFailures; + scanResult.numConnection = result.numConnection; + scanResult.isAutoJoinCandidate = result.isAutoJoinCandidate; } // Add the scan result to this WifiConfiguration diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index aadfc6740..19c1dfb33 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -2331,6 +2331,7 @@ public class WifiStateMachine extends StateMachine { protected String getLogRecString(Message msg) { WifiConfiguration config; Long now; + long milli; String report; StringBuilder sb = new StringBuilder(); if (mScreenOn) { @@ -2387,10 +2388,12 @@ public class WifiStateMachine extends StateMachine { } break; case WifiMonitor.SUPPLICANT_STATE_CHANGE_EVENT: + milli = SystemClock.elapsedRealtime(); sb.append(" "); sb.append(Integer.toString(msg.arg1)); sb.append(" "); sb.append(Integer.toString(msg.arg2)); + sb.append(" rt=").append(milli).append(" "); StateChangeResult stateChangeResult = (StateChangeResult) msg.obj; if (stateChangeResult != null) { sb.append(stateChangeResult.toString()); @@ -2458,6 +2461,8 @@ public class WifiStateMachine extends StateMachine { sb.append(bssid); } sb.append(" blacklist=" + Boolean.toString(didBlackListBSSID)); + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case WifiMonitor.SCAN_RESULTS_EVENT: sb.append(" "); @@ -2497,6 +2502,8 @@ public class WifiStateMachine extends StateMachine { if (config != null) { sb.append(" ").append(config.configKey()); } + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case CMD_TARGET_BSSID: case CMD_ASSOCIATED_BSSID: @@ -2511,6 +2518,8 @@ public class WifiStateMachine extends StateMachine { sb.append(" Target=").append(mTargetRoamBSSID); } sb.append(" roam=").append(Integer.toString(mAutoRoaming)); + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case WifiMonitor.NETWORK_DISCONNECTION_EVENT: if (msg.obj != null) { @@ -2528,6 +2537,8 @@ public class WifiStateMachine extends StateMachine { if (linkDebouncing) { sb.append(" debounce"); } + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case WifiMonitor.SSID_TEMP_DISABLED: case WifiMonitor.SSID_REENABLED: @@ -2559,6 +2570,8 @@ public class WifiStateMachine extends StateMachine { sb.append(" bssid=").append(mWifiInfo.getBSSID()); } } + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case CMD_RSSI_POLL: case CMD_UNWANTED_NETWORK: @@ -2608,6 +2621,8 @@ public class WifiStateMachine extends StateMachine { sb.append(" ").append(mTargetRoamBSSID); } sb.append(" roam=").append(Integer.toString(mAutoRoaming)); + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case CMD_AUTO_ROAM: sb.append(" "); @@ -2632,6 +2647,8 @@ public class WifiStateMachine extends StateMachine { } sb.append(" roam=").append(Integer.toString(mAutoRoaming)); sb.append(" fail count=").append(Integer.toString(mRoamFailCount)); + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case CMD_ADD_OR_UPDATE_NETWORK: sb.append(" "); @@ -2767,6 +2784,8 @@ public class WifiStateMachine extends StateMachine { sb.append(",").append(mWifiInfo.txBad); sb.append(",").append(mWifiInfo.txRetries); } + milli = SystemClock.elapsedRealtime(); + sb.append(" rt=").append(milli); break; case CMD_UPDATE_LINKPROPERTIES: sb.append(" "); |