Merge "Update LinkProperties to NetworkAgentInfo only when it's changed" am: 0683c607b6

am: 8862ea3337

Change-Id: I013f7150221d5f8fd53c7d21ca42c865103f8bb9
This commit is contained in:
Lucas Lin
2018-11-28 02:35:52 -08:00
committed by android-build-merger

View File

@@ -2099,12 +2099,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
return new MockableSystemProperties(); 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) { if (isDefaultNetwork(nai) == false) {
return; return;
} }
String tcpBufferSizes = nai.linkProperties.getTcpBufferSizes(); String tcpBufferSizes = newLp.getTcpBufferSizes();
String[] values = null; String[] values = null;
if (tcpBufferSizes != null) { if (tcpBufferSizes != null) {
values = tcpBufferSizes.split(","); values = tcpBufferSizes.split(",");
@@ -4780,8 +4782,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
updateUids(nai, null, nai.networkCapabilities); updateUids(nai, null, nai.networkCapabilities);
} }
private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties oldLp) { private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties newLp,
LinkProperties newLp = new LinkProperties(networkAgent.linkProperties); LinkProperties oldLp) {
int netId = networkAgent.network.netId; int netId = networkAgent.network.netId;
// The NetworkAgentInfo does not know whether clatd is running on its network or not. Before // 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()) { // for (LinkProperties lp : newLp.getStackedLinks()) {
// updateMtu(lp, null); // updateMtu(lp, null);
// } // }
updateTcpBufferSizes(networkAgent); updateTcpBufferSizes(networkAgent, newLp);
updateRoutes(newLp, oldLp, netId); updateRoutes(newLp, oldLp, netId);
updateDnses(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. // updateDnses will fetch the private DNS configuration from DnsManager.
mDnsManager.updatePrivateDnsStatus(netId, newLp); mDnsManager.updatePrivateDnsStatus(netId, newLp);
// Start or stop clat accordingly to network state.
networkAgent.updateClat(mNMS);
if (isDefaultNetwork(networkAgent)) { if (isDefaultNetwork(networkAgent)) {
handleApplyDefaultProxy(newLp.getHttpProxy()); handleApplyDefaultProxy(newLp.getHttpProxy());
} else { } else {
@@ -4818,8 +4818,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
synchronized (networkAgent) { synchronized (networkAgent) {
networkAgent.linkProperties = newLp; networkAgent.linkProperties = newLp;
} }
// Start or stop clat accordingly to network state.
networkAgent.updateClat(mNMS);
notifyIfacesChangedForNetworkStats(); notifyIfacesChangedForNetworkStats();
notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED); if (networkAgent.everConnected) {
notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
}
} }
mKeepaliveTracker.handleCheckKeepalivesStillValid(networkAgent); mKeepaliveTracker.handleCheckKeepalivesStillValid(networkAgent);
@@ -5124,13 +5128,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
"; created=" + nai.created + "; created=" + nai.created +
"; everConnected=" + nai.everConnected); "; everConnected=" + nai.everConnected);
} }
LinkProperties oldLp = nai.linkProperties; updateLinkProperties(nai, newLp, new LinkProperties(nai.linkProperties));
synchronized (nai) {
nai.linkProperties = newLp;
}
if (nai.everConnected) {
updateLinkProperties(nai, oldLp);
}
} }
private void sendUpdatedScoreToFactories(NetworkAgentInfo nai) { private void sendUpdatedScoreToFactories(NetworkAgentInfo nai) {
@@ -5291,7 +5289,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
notifyLockdownVpn(newNetwork); notifyLockdownVpn(newNetwork);
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy()); handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
updateTcpBufferSizes(newNetwork); updateTcpBufferSizes(newNetwork, new LinkProperties(newNetwork.linkProperties));
mDnsManager.setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers()); mDnsManager.setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
notifyIfacesChangedForNetworkStats(); notifyIfacesChangedForNetworkStats();
} }
@@ -5706,7 +5704,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
} }
handlePerNetworkPrivateDnsConfig(networkAgent, mDnsManager.getPrivateDnsConfig()); handlePerNetworkPrivateDnsConfig(networkAgent, mDnsManager.getPrivateDnsConfig());
updateLinkProperties(networkAgent, null); updateLinkProperties(networkAgent, new LinkProperties(networkAgent.linkProperties),
null);
networkAgent.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED); networkAgent.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED);
scheduleUnvalidatedPrompt(networkAgent); scheduleUnvalidatedPrompt(networkAgent);