diff options
| author | 2020-11-06 05:47:26 +0000 | |
|---|---|---|
| committer | 2020-11-06 05:47:26 +0000 | |
| commit | c2ed1f7e817cc4ef20aa733e108cebab4a071520 (patch) | |
| tree | e5ad18ece6e685d0a01e10c1b0c4bc851f574f2b | |
| parent | df8410e6771b49ce12d861499f77bfc0f25b5539 (diff) | |
| parent | 2feb4fb0a01c03fec8848f182f06524b81f31a61 (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.java | 12 |
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; |