From 20a7e881da4d66fb2902e4bb8785c07a79a535e1 Mon Sep 17 00:00:00 2001 From: Chad Brubaker Date: Tue, 23 Jul 2013 17:13:36 -0700 Subject: [PATCH] Fix default DNS not being set on network changes Change-Id: I3c45404cab34c77b20dadc1d8aee127aa08fd0bd --- services/java/com/android/server/ConnectivityService.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 0608b6a6f583..a3b3a1455d52 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -2586,7 +2586,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { // Caller must grab mDnsLock. private void updateDnsLocked(String network, String iface, - Collection dnses, String domains) { + Collection 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). -- 2.11.0