Merge "Check NetworkAgentInfo Map Before Destroying Network" am: 9d31c63e03

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

Change-Id: Ibcf989ffd494108faeeb4419041fb32389208c4d
This commit is contained in:
Chalard Jean
2021-09-29 06:20:06 +00:00
committed by Automerger Merge Worker

View File

@@ -3856,9 +3856,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void handleNetworkAgentDisconnected(Message msg) {
NetworkAgentInfo nai = (NetworkAgentInfo) msg.obj;
if (mNetworkAgentInfos.contains(nai)) {
disconnectAndDestroyNetwork(nai);
}
disconnectAndDestroyNetwork(nai);
}
// Destroys a network, remove references to it from the internal state managed by
@@ -3866,6 +3864,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
// Must be called on the Handler thread.
private void disconnectAndDestroyNetwork(NetworkAgentInfo nai) {
ensureRunningOnConnectivityServiceThread();
if (!mNetworkAgentInfos.contains(nai)) return;
if (DBG) {
log(nai.toShortString() + " disconnected, was satisfying " + nai.numNetworkRequests());
}
@@ -3951,7 +3952,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
try {
mNetd.networkSetPermissionForNetwork(nai.network.netId, INetd.PERMISSION_SYSTEM);
} catch (RemoteException e) {
Log.d(TAG, "Error marking network restricted during teardown: " + e);
Log.d(TAG, "Error marking network restricted during teardown: ", e);
}
mHandler.postDelayed(() -> destroyNetwork(nai), nai.teardownDelayMs);
}