Merge "Only pass the NRI for removal in NRI#binderDied" am: 24fa1d7a8f am: 48f3878591

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1741953

Change-Id: I96cf6ee7fa18900fc0c4ea97b424b634c433083c
This commit is contained in:
James Mattis
2021-07-09 00:25:24 +00:00
committed by Automerger Merge Worker

View File

@@ -4229,13 +4229,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void handleRemoveNetworkRequest(@NonNull final NetworkRequestInfo nri) {
ensureRunningOnConnectivityServiceThread();
nri.unlinkDeathRecipient();
for (final NetworkRequest req : nri.mRequests) {
mNetworkRequests.remove(req);
if (null == mNetworkRequests.remove(req)) {
logw("Attempted removal of untracked request " + req + " for nri " + nri);
continue;
}
if (req.isListen()) {
removeListenRequestFromNetworks(req);
}
}
nri.unlinkDeathRecipient();
if (mDefaultNetworkRequests.remove(nri)) {
// If this request was one of the defaults, then the UID rules need to be updated
// WARNING : if the app(s) for which this network request is the default are doing
@@ -5913,8 +5916,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public void binderDied() {
log("ConnectivityService NetworkRequestInfo binderDied(" +
mRequests + ", " + mBinder + ")");
releaseNetworkRequests(mRequests);
"uid/pid:" + mUid + "/" + mPid + ", " + mBinder + ")");
mHandler.post(() -> handleRemoveNetworkRequest(this));
}
@Override
@@ -6345,12 +6348,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
return mNextNetworkProviderId.getAndIncrement();
}
private void releaseNetworkRequests(List<NetworkRequest> networkRequests) {
for (int i = 0; i < networkRequests.size(); i++) {
releaseNetworkRequest(networkRequests.get(i));
}
}
@Override
public void releaseNetworkRequest(NetworkRequest networkRequest) {
ensureNetworkRequestHasType(networkRequest);