diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2017-03-23 16:18:08 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-03-23 16:18:09 +0000 |
commit | a23a5d97595e973f2a0aa6028473259f47934d4c (patch) | |
tree | fcbf979c50cb2bd7bb9d3ae8fe5a031c56e8de9d | |
parent | e8de163ec30f575280b907b0e4f836c67b43948d (diff) | |
parent | 50bc1e851d073d4a986f5b32072f94bbaba86a95 (diff) |
Merge "hotspot2: dump Passpoint related info to dumpsys"
6 files changed, 50 insertions, 9 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index 20f7ac5af..77d9dd13d 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -2154,6 +2154,8 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss mWifiConfigManager.dump(fd, pw, args); pw.println(); + mPasspointManager.dump(pw); + pw.println(); mWifiDiagnostics.captureBugReportData(WifiDiagnostics.REPORT_REASON_USER_ACTION); mWifiDiagnostics.dump(fd, pw, args); dumpIpManager(fd, pw, args); diff --git a/service/java/com/android/server/wifi/hotspot2/ANQPData.java b/service/java/com/android/server/wifi/hotspot2/ANQPData.java index 7a708c5dd..6dbbe8ac0 100644 --- a/service/java/com/android/server/wifi/hotspot2/ANQPData.java +++ b/service/java/com/android/server/wifi/hotspot2/ANQPData.java @@ -70,16 +70,10 @@ public class ANQPData { @Override public String toString() { StringBuilder sb = new StringBuilder(); - if (mANQPElements == null) { - sb.append(", unresolved, "); - } - else { - sb.append(", ").append(mANQPElements.size()).append(" elements, "); - } + sb.append(mANQPElements.size()).append(" elements, "); long now = mClock.getElapsedSinceBootMillis(); sb.append(" expires in ").append(Utils.toHMS(mExpiryTime - now)).append(' '); sb.append(expired(now) ? 'x' : '-'); - sb.append(mANQPElements == null ? 'u' : '-'); return sb.toString(); } } diff --git a/service/java/com/android/server/wifi/hotspot2/AnqpCache.java b/service/java/com/android/server/wifi/hotspot2/AnqpCache.java index ba96cff39..215f6a354 100644 --- a/service/java/com/android/server/wifi/hotspot2/AnqpCache.java +++ b/service/java/com/android/server/wifi/hotspot2/AnqpCache.java @@ -96,8 +96,8 @@ public class AnqpCache { public void dump(PrintWriter out) { out.println("Last sweep " + Utils.toHMS(mClock.getElapsedSinceBootMillis() - mLastSweep) + " ago."); - for (ANQPData anqpData : mANQPCache.values()) { - out.println(anqpData); + for (Map.Entry<ANQPNetworkKey, ANQPData> entry : mANQPCache.entrySet()) { + out.println(entry.getKey() + ": " + entry.getValue()); } } } diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java index c3acd39c3..0e4620673 100644 --- a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java +++ b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java @@ -49,6 +49,7 @@ import com.android.server.wifi.hotspot2.anqp.Constants; import com.android.server.wifi.util.InformationElementUtil; import com.android.server.wifi.util.ScanResultUtil; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -239,6 +240,7 @@ public class PasspointManager { mProviders.put(config.getHomeSp().getFqdn(), newProvider); mWifiConfigManager.saveToStore(true /* forceWrite */); + Log.d(TAG, "Added/updated Passpoint configuration: " + config.getHomeSp().getFqdn()); return true; } @@ -257,6 +259,7 @@ public class PasspointManager { mProviders.get(fqdn).uninstallCertsAndKeys(); mProviders.remove(fqdn); mWifiConfigManager.saveToStore(true /* forceWrite */); + Log.d(TAG, "Removed Passpoint configuration: " + fqdn); return true; } @@ -311,6 +314,7 @@ public class PasspointManager { mAnqpRequestManager.requestANQPElements(bssid, anqpKey, roamingConsortium.anqpOICount > 0, vsa.hsRelease == NetworkDetail.HSRelease.R2); + Log.d(TAG, "ANQP entry not found for: " + anqpKey); return null; } @@ -326,6 +330,14 @@ public class PasspointManager { bestMatch = Pair.create(provider, matchStatus); } } + if (bestMatch != null) { + Log.d(TAG, String.format("Matched %s to %s as %s", scanResult.SSID, + bestMatch.first.getConfig().getHomeSp().getFqdn(), + bestMatch.second == PasspointMatch.HomeProvider ? "Home Provider" + : "Roaming Provider")); + } else { + Log.d(TAG, "Match not found for " + scanResult.SSID); + } return bestMatch; } @@ -345,6 +357,7 @@ public class PasspointManager { Log.e(TAG, "PasspointManager have not been initialized yet"); return false; } + Log.d(TAG, "Installing legacy Passpoint configuration: " + config.FQDN); return sPasspointManager.addWifiConfig(config); } @@ -424,6 +437,7 @@ public class PasspointManager { */ public WifiConfiguration getMatchingWifiConfig(ScanResult scanResult) { if (scanResult == null) { + Log.e(TAG, "Attempt to get matching config for a null ScanResult"); return null; } Pair<PasspointProvider, PasspointMatch> matchedProvider = matchProvider(scanResult); @@ -436,6 +450,22 @@ public class PasspointManager { } /** + * Dump the current state of PasspointManager to the provided output stream. + * + * @param pw The output stream to write to + */ + public void dump(PrintWriter pw) { + pw.println("Dump of PasspointManager"); + pw.println("PasspointManager - Providers Begin ---"); + for (Map.Entry<String, PasspointProvider> entry : mProviders.entrySet()) { + pw.println(entry.getValue()); + } + pw.println("PasspointManager - Providers End ---"); + pw.println("PasspointManager - Next provider ID to be assigned " + mProviderIndex); + mAnqpCache.dump(pw); + } + + /** * Add a legacy Passpoint configuration represented by a {@link WifiConfiguration}. * * @param wifiConfig {@link WifiConfiguration} representation of the Passpoint configuration diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java b/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java index 740a302cc..3baf5c6da 100644 --- a/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java +++ b/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java @@ -84,6 +84,7 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva // Done if no matching provider is found. if (providerList.isEmpty()) { + localLog("No suitable Passpoint network found"); return null; } @@ -94,6 +95,7 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva // Return the configuration for the current connected network if it is the best network. if (currentNetwork != null && TextUtils.equals(currentNetwork.SSID, ScanResultUtil.createQuotedSSID(bestNetwork.second.getSSID()))) { + localLog("Staying with current Passpoint network " + currentNetwork.SSID); connectableNetworks.add(Pair.create(bestNetwork.second, currentNetwork)); return currentNetwork; } @@ -101,6 +103,7 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva WifiConfiguration config = createWifiConfigForProvider(bestNetwork.first, bestNetwork.second); connectableNetworks.add(Pair.create(bestNetwork.second, config)); + localLog("Passpoint network to connect to: " + config.SSID); return config; } @@ -163,6 +166,8 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva bestScore = score; } } + localLog("Best Passpoint network " + bestScanDetail.getSSID() + " provided by " + + bestProvider.getConfig().getHomeSp().getFqdn()); return Pair.create(bestProvider, bestScanDetail); } diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java b/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java index 40f34ded6..1f3b9bbd8 100644 --- a/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java +++ b/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java @@ -381,6 +381,16 @@ public class PasspointProvider { mClientPrivateKeyAlias, mConfig); } + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("ProviderId: ").append(mProviderId).append("\n"); + builder.append("Configuration Begin ---\n"); + builder.append(mConfig); + builder.append("Configuration End ---\n"); + return builder.toString(); + } + /** * Retrieve the client certificate from the certificates chain. The certificate * with the matching SHA256 digest is the client certificate. |