summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author James Mattis <jmattis@google.com> 2020-11-06 05:47:26 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-11-06 05:47:26 +0000
commitc2ed1f7e817cc4ef20aa733e108cebab4a071520 (patch)
treee5ad18ece6e685d0a01e10c1b0c4bc851f574f2b
parentdf8410e6771b49ce12d861499f77bfc0f25b5539 (diff)
parent2feb4fb0a01c03fec8848f182f06524b81f31a61 (diff)
Merge "Adding multilayered requests to NetworkRequestInfo" am: f2c37de2ba am: 2feb4fb0a0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1486199 Change-Id: I3d013dc1a3caf9c41fbc835f2eb92df4e40bed33
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index a992aa6c409f..93825ca560da 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -235,6 +235,7 @@ import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.Comparator;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
@@ -5358,7 +5359,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
* Also used to notice when the calling process dies so we can self-expire
*/
private class NetworkRequestInfo implements IBinder.DeathRecipient {
+ final List<NetworkRequest> mRequests;
final NetworkRequest request;
+
// The network currently satisfying this request, or null if none. Must only be touched
// on the handler thread. This only makes sense for network requests and not for listens,
// as defined by NetworkRequest#isRequest(). For listens, this is always null.
@@ -5373,6 +5376,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
NetworkRequestInfo(NetworkRequest r, PendingIntent pi) {
request = r;
+ mRequests = initializeRequests(r);
ensureNetworkRequestHasType(request);
mPendingIntent = pi;
messenger = null;
@@ -5386,6 +5390,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
super();
messenger = m;
request = r;
+ mRequests = initializeRequests(r);
ensureNetworkRequestHasType(request);
mBinder = binder;
mPid = getCallingPid();
@@ -5404,6 +5409,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
this(r, null);
}
+ private List<NetworkRequest> initializeRequests(NetworkRequest r) {
+ final ArrayList<NetworkRequest> tempRequests = new ArrayList<>();
+ tempRequests.add(new NetworkRequest(r));
+ return Collections.unmodifiableList(tempRequests);
+ }
+
+
private void enforceRequestCountLimit() {
synchronized (mUidToNetworkRequestCount) {
int networkRequests = mUidToNetworkRequestCount.get(mUid, 0) + 1;