summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvandwalle <vandwalle@google.com>2014-10-15 12:32:45 -0700
committervandwalle <vandwalle@google.com>2014-10-15 14:45:43 -0700
commit078a7527951b1e8fb7722ab930760730cf54e572 (patch)
treedbca007a4244cefd0b636e1e6b49eb51bbe50d1c
parenta5283c01ac413e378e2261050cac3a6d6e9cf385 (diff)
downloadwifi-078a7527951b1e8fb7722ab930760730cf54e572.tar.gz
fix bssid blacklisting
Bug:17960587 Bug:17966377 Change-Id: I6ead5386f961e8bd0705ceea190752dd20f7e38a
-rw-r--r--service/java/com/android/server/wifi/WifiConfigStore.java16
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java19
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(" ");