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

Commit 46a7b0d1 authored by Geremy Condra's avatar Geremy Condra Committed by Android (Google) Code Review
Browse files

Merge "Fix default DNS not being set on network changes"

parents eb54cc7e 20a7e881
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -2619,7 +2619,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {

    // Caller must grab mDnsLock.
    private void updateDnsLocked(String network, String iface,
            Collection<InetAddress> dnses, String domains) {
            Collection<InetAddress> dnses, String domains, boolean defaultDns) {
        int last = 0;
        if (dnses.size() == 0 && mDefaultDns != null) {
            dnses = new ArrayList();
@@ -2631,6 +2631,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {

        try {
            mNetd.setDnsServersForInterface(iface, NetworkUtils.makeStrings(dnses), domains);
            if (defaultDns) {
                mNetd.setDefaultInterfaceForDns(iface);
            }

            for (InetAddress dns : dnses) {
                ++last;
                String key = "net.dns" + last;
@@ -2658,7 +2662,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                String network = nt.getNetworkInfo().getTypeName();
                synchronized (mDnsLock) {
                    if (!mDnsOverridden) {
                        updateDnsLocked(network, p.getInterfaceName(), dnses, p.getDomains());
                        updateDnsLocked(network, p.getInterfaceName(), dnses, p.getDomains(), true);
                    }
                }
            } else {
@@ -3543,8 +3547,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {

            // Apply DNS changes.
            synchronized (mDnsLock) {
                updateDnsLocked("VPN", iface, addresses, domains);
                mDnsOverridden = true;
                updateDnsLocked("VPN", iface, addresses, domains, false);
            }

            // Temporarily disable the default proxy (not global).