diff options
| author | 2013-07-24 00:32:34 +0000 | |
|---|---|---|
| committer | 2013-07-24 00:32:34 +0000 | |
| commit | 46a7b0d1aaa79415af4e3dbe84bbb9ca27b19139 (patch) | |
| tree | 5a4538f7c716521b9270e0dc1ad8d6f36739931a | |
| parent | eb54cc7eed9cdf011d021e91f1d28928dccd321f (diff) | |
| parent | 20a7e881da4d66fb2902e4bb8785c07a79a535e1 (diff) | |
Merge "Fix default DNS not being set on network changes"
| -rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 3f0aec5d49eb..f5e75f978f09 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -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). |