From 00717e2d04cc2c273da9eae4d0dfe61621c7c08d Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 17 Aug 2009 10:09:36 -0400 Subject: [PATCH] WifiService: Hash based on both SSID and BSSID in scan result cache. Fixes problem with base stations that have multiple SSIDs. Signed-off-by: Mike Lockwood --- services/java/com/android/server/WifiService.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index fae987a3af878..2dc747ea6914b 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -1209,8 +1209,9 @@ public class WifiService extends IWifiManager.Stub { ssid = ""; } - // bssid is the hash key - scanResult = mScanResultCache.get(bssid); + // bssid + ssid is the hash key + String key = bssid + ssid; + scanResult = mScanResultCache.get(key); if (scanResult != null) { scanResult.level = level; scanResult.SSID = ssid; @@ -1222,7 +1223,7 @@ public class WifiService extends IWifiManager.Stub { scanResult = new ScanResult( ssid, bssid, flags, level, frequency); - mScanResultCache.put(bssid, scanResult); + mScanResultCache.put(key, scanResult); } } } else {