Merge "Fix default DNS not being set on network changes"
This commit is contained in:
committed by
Android (Google) Code Review
commit
63ac2f7d54
@@ -2619,7 +2619,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
// Caller must grab mDnsLock.
|
// Caller must grab mDnsLock.
|
||||||
private void updateDnsLocked(String network, String iface,
|
private void updateDnsLocked(String network, String iface,
|
||||||
Collection<InetAddress> dnses, String domains) {
|
Collection<InetAddress> dnses, String domains, boolean defaultDns) {
|
||||||
int last = 0;
|
int last = 0;
|
||||||
if (dnses.size() == 0 && mDefaultDns != null) {
|
if (dnses.size() == 0 && mDefaultDns != null) {
|
||||||
dnses = new ArrayList();
|
dnses = new ArrayList();
|
||||||
@@ -2631,6 +2631,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
mNetd.setDnsServersForInterface(iface, NetworkUtils.makeStrings(dnses), domains);
|
mNetd.setDnsServersForInterface(iface, NetworkUtils.makeStrings(dnses), domains);
|
||||||
|
if (defaultDns) {
|
||||||
|
mNetd.setDefaultInterfaceForDns(iface);
|
||||||
|
}
|
||||||
|
|
||||||
for (InetAddress dns : dnses) {
|
for (InetAddress dns : dnses) {
|
||||||
++last;
|
++last;
|
||||||
String key = "net.dns" + last;
|
String key = "net.dns" + last;
|
||||||
@@ -2658,7 +2662,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
String network = nt.getNetworkInfo().getTypeName();
|
String network = nt.getNetworkInfo().getTypeName();
|
||||||
synchronized (mDnsLock) {
|
synchronized (mDnsLock) {
|
||||||
if (!mDnsOverridden) {
|
if (!mDnsOverridden) {
|
||||||
updateDnsLocked(network, p.getInterfaceName(), dnses, p.getDomains());
|
updateDnsLocked(network, p.getInterfaceName(), dnses, p.getDomains(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -3543,8 +3547,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
// Apply DNS changes.
|
// Apply DNS changes.
|
||||||
synchronized (mDnsLock) {
|
synchronized (mDnsLock) {
|
||||||
updateDnsLocked("VPN", iface, addresses, domains);
|
updateDnsLocked("VPN", iface, addresses, domains, false);
|
||||||
mDnsOverridden = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Temporarily disable the default proxy (not global).
|
// Temporarily disable the default proxy (not global).
|
||||||
|
|||||||
Reference in New Issue
Block a user