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

Commit 20a7e881 authored by Chad Brubaker's avatar Chad Brubaker
Browse files

Fix default DNS not being set on network changes

Change-Id: I3c45404cab34c77b20dadc1d8aee127aa08fd0bd
parent a5bc070e
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -2586,7 +2586,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();
@@ -2598,6 +2598,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;
@@ -2625,7 +2629,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 {
@@ -3496,8 +3500,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).