summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java7
-rw-r--r--tests/net/java/com/android/server/ConnectivityServiceTest.java8
2 files changed, 12 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 6ef1c1421b4d..c9f9ab675a75 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -4731,11 +4731,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
} 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 220858081e93..c2c627d06e47 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -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