Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ca1b61a authored by Lucas Lin's avatar Lucas Lin Committed by Gerrit Code Review
Browse files

Merge "Update LinkProperties to NetworkAgentInfo only when it's changed"

parents 74204892 25a4ec35
Loading
Loading
Loading
Loading
+16 −17
Original line number Diff line number Diff line
@@ -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,9 +4818,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
            synchronized (networkAgent) {
                networkAgent.linkProperties = newLp;
            }
            // Start or stop clat accordingly to network state.
            networkAgent.updateClat(mNMS);
            notifyIfacesChangedForNetworkStats();
            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);