diff options
| author | 2018-11-28 02:46:24 -0800 | |
|---|---|---|
| committer | 2018-11-28 02:46:24 -0800 | |
| commit | e30fc89f6ef268e45c3879a03c4d294ca4f1ba1c (patch) | |
| tree | ab29118ac3fd9a460242cb242540619027c5949c | |
| parent | cb9be4675a97b2359d8962f0f9c8163bab7b74d4 (diff) | |
| parent | d637e9e489aa3872c9ee5135047040710739c81f (diff) | |
Merge "Update LinkProperties to NetworkAgentInfo only when it's changed" am: 4ca1b61a27 am: ac87267299
am: d637e9e489
Change-Id: Ica702f2bee03e300f1a451fc4a58dbb7ad5100a3
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 8a0d9fe93d1c..60bbca833925 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2099,12 +2099,14 @@ public class ConnectivityService extends IConnectivityManager.Stub return new MockableSystemProperties(); } - private void updateTcpBufferSizes(NetworkAgentInfo nai) { + // TODO: Replace nai and newLp with TcpBufferSizes and check default network before calling + // this method. + private void updateTcpBufferSizes(NetworkAgentInfo nai, LinkProperties newLp) { if (isDefaultNetwork(nai) == false) { return; } - String tcpBufferSizes = nai.linkProperties.getTcpBufferSizes(); + String tcpBufferSizes = newLp.getTcpBufferSizes(); String[] values = null; if (tcpBufferSizes != null) { values = tcpBufferSizes.split(","); @@ -4780,8 +4782,8 @@ public class ConnectivityService extends IConnectivityManager.Stub updateUids(nai, null, nai.networkCapabilities); } - private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties oldLp) { - LinkProperties newLp = new LinkProperties(networkAgent.linkProperties); + private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties newLp, + LinkProperties oldLp) { int netId = networkAgent.network.netId; // The NetworkAgentInfo does not know whether clatd is running on its network or not. Before @@ -4796,7 +4798,7 @@ public class ConnectivityService extends IConnectivityManager.Stub // for (LinkProperties lp : newLp.getStackedLinks()) { // updateMtu(lp, null); // } - updateTcpBufferSizes(networkAgent); + updateTcpBufferSizes(networkAgent, newLp); updateRoutes(newLp, oldLp, netId); updateDnses(newLp, oldLp, netId); @@ -4806,8 +4808,6 @@ public class ConnectivityService extends IConnectivityManager.Stub // updateDnses will fetch the private DNS configuration from DnsManager. mDnsManager.updatePrivateDnsStatus(netId, newLp); - // Start or stop clat accordingly to network state. - networkAgent.updateClat(mNMS); if (isDefaultNetwork(networkAgent)) { handleApplyDefaultProxy(newLp.getHttpProxy()); } else { @@ -4818,8 +4818,12 @@ public class ConnectivityService extends IConnectivityManager.Stub synchronized (networkAgent) { networkAgent.linkProperties = newLp; } + // Start or stop clat accordingly to network state. + networkAgent.updateClat(mNMS); notifyIfacesChangedForNetworkStats(); - notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED); + if (networkAgent.everConnected) { + notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED); + } } mKeepaliveTracker.handleCheckKeepalivesStillValid(networkAgent); @@ -5124,13 +5128,7 @@ public class ConnectivityService extends IConnectivityManager.Stub "; created=" + nai.created + "; everConnected=" + nai.everConnected); } - LinkProperties oldLp = nai.linkProperties; - synchronized (nai) { - nai.linkProperties = newLp; - } - if (nai.everConnected) { - updateLinkProperties(nai, oldLp); - } + updateLinkProperties(nai, newLp, new LinkProperties(nai.linkProperties)); } private void sendUpdatedScoreToFactories(NetworkAgentInfo nai) { @@ -5291,7 +5289,7 @@ public class ConnectivityService extends IConnectivityManager.Stub notifyLockdownVpn(newNetwork); handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy()); - updateTcpBufferSizes(newNetwork); + updateTcpBufferSizes(newNetwork, new LinkProperties(newNetwork.linkProperties)); mDnsManager.setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers()); notifyIfacesChangedForNetworkStats(); } @@ -5706,7 +5704,8 @@ public class ConnectivityService extends IConnectivityManager.Stub } handlePerNetworkPrivateDnsConfig(networkAgent, mDnsManager.getPrivateDnsConfig()); - updateLinkProperties(networkAgent, null); + updateLinkProperties(networkAgent, new LinkProperties(networkAgent.linkProperties), + null); networkAgent.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED); scheduleUnvalidatedPrompt(networkAgent); |