Merge "Don't send onLinkPropertiesChanged after onLost for 464xlat."
This commit is contained in:
@@ -398,10 +398,10 @@ public class UpstreamNetworkMonitor {
|
||||
// notifications (e.g. matching more than one of our callbacks).
|
||||
//
|
||||
// Also, it can happen that onLinkPropertiesChanged is called after
|
||||
// onLost removed the state from mNetworkMap. This appears to be due
|
||||
// to a bug in disconnectAndDestroyNetwork, which calls
|
||||
// nai.clatd.update() after the onLost callbacks.
|
||||
// TODO: fix the bug and make this method void.
|
||||
// onLost removed the state from mNetworkMap. This is due to a bug
|
||||
// in disconnectAndDestroyNetwork, which calls nai.clatd.update()
|
||||
// after the onLost callbacks. This was fixed in S.
|
||||
// TODO: make this method void when R is no longer supported.
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -6299,8 +6299,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
// there may not be a strict 1:1 correlation between the two.
|
||||
private final NetIdManager mNetIdManager;
|
||||
|
||||
// NetworkAgentInfo keyed off its connecting messenger
|
||||
// TODO - eval if we can reduce the number of lists/hashmaps/sparsearrays
|
||||
// Tracks all NetworkAgents that are currently registered.
|
||||
// NOTE: Only should be accessed on ConnectivityServiceThread, except dump().
|
||||
private final ArraySet<NetworkAgentInfo> mNetworkAgentInfos = new ArraySet<>();
|
||||
|
||||
@@ -7452,7 +7451,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
public void handleUpdateLinkProperties(NetworkAgentInfo nai, LinkProperties newLp) {
|
||||
ensureRunningOnConnectivityServiceThread();
|
||||
|
||||
if (getNetworkAgentInfoForNetId(nai.network.getNetId()) != nai) {
|
||||
if (!mNetworkAgentInfos.contains(nai)) {
|
||||
// Ignore updates for disconnected networks
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -8631,13 +8631,8 @@ public class ConnectivityServiceTest {
|
||||
// Disconnect the network. clat is stopped and the network is destroyed.
|
||||
mCellNetworkAgent.disconnect();
|
||||
networkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
|
||||
// TODO: delete this spurious onLinkPropertiesChanged callback.
|
||||
networkCallback.expectLinkPropertiesThat(mCellNetworkAgent,
|
||||
lp -> lp.getStackedLinks().isEmpty());
|
||||
networkCallback.assertNoCallback();
|
||||
verify(mMockNetd).clatdStop(MOBILE_IFNAME);
|
||||
verify(mMockNetd).networkRemoveInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
||||
assertRoutesRemoved(cellNetId, stackedDefault);
|
||||
verify(mMockNetd).idletimerRemoveInterface(eq(MOBILE_IFNAME), anyInt(),
|
||||
eq(Integer.toString(TRANSPORT_CELLULAR)));
|
||||
verify(mMockNetd).networkDestroy(cellNetId);
|
||||
|
||||
Reference in New Issue
Block a user