Snap for 5450365 from 30b1444ad720292b9bf45355de93b281d8c82ca9 to pi-platform-release
Change-Id: I944e7d1ac9deebd68b7a3d2f3b8200df78a23099
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 6ef1c14..c9f9ab6 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -4731,11 +4731,12 @@
} else {
updateProxy(newLp, oldLp, networkAgent);
}
+
+ synchronized (networkAgent) {
+ networkAgent.linkProperties = newLp;
+ }
// TODO - move this check to cover the whole function
if (!Objects.equals(newLp, oldLp)) {
- synchronized (networkAgent) {
- networkAgent.linkProperties = newLp;
- }
notifyIfacesChangedForNetworkStats();
notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
}
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index 2208580..c2c627d 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -4024,6 +4024,14 @@
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