DO NOT MERGE fix some linkproperties configs missing

In handleUpdateLinkProperties(), it will always assign newLp
to nai first. Then, the copied newLp would add some configurations
ex: private dns/clatd. This updated newLp wouldn't be assigned back to
nai when linkproperties is not changed.

Bug: 113637648
Test: - build, flash, booted
      - atest FrameworksNetTests
      - run CtsNetTestCases

Change-Id: I9e25e46718e076d4afa784ee5e1d3abbe0f11911
This commit is contained in:
markchien
2018-12-10 20:53:47 +08:00
committed by Mark Chien
parent e43ff3e85f
commit 20f6d0a3b9
2 changed files with 12 additions and 3 deletions

View File

@@ -4731,11 +4731,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
} else {
updateProxy(newLp, oldLp, networkAgent);
}
// TODO - move this check to cover the whole function
if (!Objects.equals(newLp, oldLp)) {
synchronized (networkAgent) {
networkAgent.linkProperties = newLp;
}
// TODO - move this check to cover the whole function
if (!Objects.equals(newLp, oldLp)) {
notifyIfacesChangedForNetworkStats();
notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
}

View File

@@ -4024,6 +4024,14 @@ public class ConnectivityServiceTest {
cellNetworkCallback.assertNoCallback();
assertTrue(((LinkProperties)cbi.arg).isPrivateDnsActive());
assertEquals("strict.example.com", ((LinkProperties)cbi.arg).getPrivateDnsServerName());
// Send the same LinkProperties and expect getting the same result including private dns.
// b/118518971
LinkProperties oldLp = (LinkProperties) cbi.arg;
mCellNetworkAgent.sendLinkProperties(cellLp);
waitForIdle();
LinkProperties newLp = mCm.getLinkProperties(cbi.network);
assertEquals(oldLp, newLp);
}
@Test