Merge "Only pass the NRI for removal in NRI#binderDied" am: 24fa1d7a8f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1741953 Change-Id: Iac74fa029c1736ae5a094d80766acbb838a6e212
This commit is contained in:
@@ -4221,13 +4221,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
private void handleRemoveNetworkRequest(@NonNull final NetworkRequestInfo nri) {
|
private void handleRemoveNetworkRequest(@NonNull final NetworkRequestInfo nri) {
|
||||||
ensureRunningOnConnectivityServiceThread();
|
ensureRunningOnConnectivityServiceThread();
|
||||||
nri.unlinkDeathRecipient();
|
|
||||||
for (final NetworkRequest req : nri.mRequests) {
|
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()) {
|
if (req.isListen()) {
|
||||||
removeListenRequestFromNetworks(req);
|
removeListenRequestFromNetworks(req);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
nri.unlinkDeathRecipient();
|
||||||
if (mDefaultNetworkRequests.remove(nri)) {
|
if (mDefaultNetworkRequests.remove(nri)) {
|
||||||
// If this request was one of the defaults, then the UID rules need to be updated
|
// 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
|
// WARNING : if the app(s) for which this network request is the default are doing
|
||||||
@@ -5905,8 +5908,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
@Override
|
@Override
|
||||||
public void binderDied() {
|
public void binderDied() {
|
||||||
log("ConnectivityService NetworkRequestInfo binderDied(" +
|
log("ConnectivityService NetworkRequestInfo binderDied(" +
|
||||||
mRequests + ", " + mBinder + ")");
|
"uid/pid:" + mUid + "/" + mPid + ", " + mBinder + ")");
|
||||||
releaseNetworkRequests(mRequests);
|
mHandler.post(() -> handleRemoveNetworkRequest(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -6337,12 +6340,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
return mNextNetworkProviderId.getAndIncrement();
|
return mNextNetworkProviderId.getAndIncrement();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void releaseNetworkRequests(List<NetworkRequest> networkRequests) {
|
|
||||||
for (int i = 0; i < networkRequests.size(); i++) {
|
|
||||||
releaseNetworkRequest(networkRequests.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void releaseNetworkRequest(NetworkRequest networkRequest) {
|
public void releaseNetworkRequest(NetworkRequest networkRequest) {
|
||||||
ensureNetworkRequestHasType(networkRequest);
|
ensureNetworkRequestHasType(networkRequest);
|
||||||
|
|||||||
Reference in New Issue
Block a user