diff options
author | Randy Pan <zpan@google.com> | 2016-10-27 09:38:21 -0700 |
---|---|---|
committer | Randy Pan <zpan@google.com> | 2016-10-27 11:34:01 -0700 |
commit | a8a5644b48660a166adfad9fdc274cbdb44cdf4b (patch) | |
tree | d1e3e4975659af64c694b5ebcd3d30c58ae6c4b8 /service | |
parent | b454ccdec67d69566666104ade0ee7671d6dc9d7 (diff) | |
download | android_frameworks_opt_net_wifi-a8a5644b48660a166adfad9fdc274cbdb44cdf4b.tar.gz android_frameworks_opt_net_wifi-a8a5644b48660a166adfad9fdc274cbdb44cdf4b.tar.bz2 android_frameworks_opt_net_wifi-a8a5644b48660a166adfad9fdc274cbdb44cdf4b.zip |
DO NOT MERGE: Check on whether an ephemeral network is deleted
Add quotes to ScanResult.SSID before passing it to
WifiConfigManager#waswasEphemeralNetworkDeleted.
While there, improved the java doc of
WifiConfigManager#waswasEphemeralNetworkDeleted to make it clear
that SSID surrounded by quotes is expected.
Bug: 32205260
Test: Ephemeral network added by WiFi Assistant can be forgotten
Change-Id: I45afd45fd7257a31ec16aca5b6ae765d417ecead
Diffstat (limited to 'service')
3 files changed, 13 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 4a27fef97..3c717c0ed 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -3240,7 +3240,8 @@ public class WifiConfigManager { /** * Check if the provided ephemeral network was deleted by the user or not. - * @param ssid ssid of the network + * @param ssid caller must ensure that the SSID passed thru this API match + * the WifiConfiguration.SSID rules, and thus be surrounded by quotes. * @return true if network was deleted, false otherwise. */ public boolean wasEphemeralNetworkDeleted(String ssid) { diff --git a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java index dd8bdae50..e916c8c4a 100644 --- a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java +++ b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java @@ -32,6 +32,7 @@ import android.util.Pair; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; +import com.android.server.wifi.util.ScanDetailUtil; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -728,7 +729,8 @@ public class WifiQualifiedNetworkSelector { if (isUntrustedConnectionsAllowed) { Integer netScore = getNetworkScore(scanResult, false); if (netScore != null - && !mWifiConfigManager.wasEphemeralNetworkDeleted(scanResult.SSID)) { + && !mWifiConfigManager.wasEphemeralNetworkDeleted( + ScanDetailUtil.createQuotedSSID(scanResult.SSID))) { externalScoreEvaluator.evalUntrustedCandidate(netScore, scanResult); // scanDetail is for available ephemeral network filteredScanDetails.add(Pair.create(scanDetail, diff --git a/service/java/com/android/server/wifi/util/ScanDetailUtil.java b/service/java/com/android/server/wifi/util/ScanDetailUtil.java index a83900e0a..c5ec92af9 100644 --- a/service/java/com/android/server/wifi/util/ScanDetailUtil.java +++ b/service/java/com/android/server/wifi/util/ScanDetailUtil.java @@ -37,4 +37,12 @@ public class ScanDetailUtil { scanResult.informationElements, scanResult.anqpLines, scanResult.frequency); return new ScanDetail(scanResult, networkDetail, null); } + + /** + * Helper method to quote the SSID in Scan result to use for comparing/filling SSID stored in + * WifiConfiguration object. + */ + public static String createQuotedSSID(String ssid) { + return "\"" + ssid + "\""; + } } |