From ce90ecbaf7f96b39378e6481afa391e8bf439b29 Mon Sep 17 00:00:00 2001 From: Paul Jensen Date: Mon, 17 Nov 2014 12:34:51 -0500 Subject: [PATCH] Don't bother validating networks that don't satisfy the default request. The only immediate change in behavior is not validating untrusted networks. bug:18299572 bug:18394654 Change-Id: I8d626baf37db0bd0f55ddf3af8a0abf094a12369 --- .../core/java/com/android/server/ConnectivityService.java | 5 ++++- .../com/android/server/connectivity/NetworkAgentInfo.java | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 17889eae77..6d161a236b 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3615,6 +3615,7 @@ public class ConnectivityService extends IConnectivityManager.Stub private final HashMap mNetworkAgentInfos = new HashMap(); + // Note: if mDefaultRequest is changed, NetworkMonitor needs to be updated. private final NetworkRequest mDefaultRequest; private boolean isDefaultNetwork(NetworkAgentInfo nai) { @@ -3626,10 +3627,12 @@ public class ConnectivityService extends IConnectivityManager.Stub int currentScore, NetworkMisc networkMisc) { enforceConnectivityInternalPermission(); + // TODO: Instead of passing mDefaultRequest, provide an API to determine whether a Network + // satisfies mDefaultRequest. NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(), new NetworkInfo(networkInfo), new LinkProperties(linkProperties), new NetworkCapabilities(networkCapabilities), currentScore, mContext, mTrackerHandler, - new NetworkMisc(networkMisc)); + new NetworkMisc(networkMisc), mDefaultRequest); synchronized (this) { nai.networkMonitor.systemReady = mSystemReady; } diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java index 4cf2a4acb8..12da5c3c57 100644 --- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java @@ -68,7 +68,7 @@ public class NetworkAgentInfo { public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, NetworkInfo info, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, - NetworkMisc misc) { + NetworkMisc misc, NetworkRequest defaultRequest) { this.messenger = messenger; asyncChannel = ac; network = null; @@ -76,7 +76,7 @@ public class NetworkAgentInfo { linkProperties = lp; networkCapabilities = nc; currentScore = score; - networkMonitor = new NetworkMonitor(context, handler, this); + networkMonitor = new NetworkMonitor(context, handler, this, defaultRequest); networkMisc = misc; created = false; validated = false;