diff options
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 7 | ||||
| -rw-r--r-- | tests/net/java/com/android/server/ConnectivityServiceTest.java | 8 |
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 |