summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Geremy Condra <gcondra@google.com> 2013-07-24 00:32:34 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-07-24 00:32:34 +0000
commit46a7b0d1aaa79415af4e3dbe84bbb9ca27b19139 (patch)
tree5a4538f7c716521b9270e0dc1ad8d6f36739931a
parenteb54cc7eed9cdf011d021e91f1d28928dccd321f (diff)
parent20a7e881da4d66fb2902e4bb8785c07a79a535e1 (diff)
Merge "Fix default DNS not being set on network changes"
-rw-r--r--services/java/com/android/server/ConnectivityService.java11
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).