Use the carrier-given dns addrs for tethering.
This fixes a complaint from carriers (that we used 8.8.8.8), but also fixes the case where there is only room for one live radio connection: the secondary connection (tethering) doesn't have a default route to prevent on-device traffic from slipping out on the tethering connection, but tethered dns is proxied through dnsmasq, so it is appearing as on-device traffic and is unroutable. By switching to the carrier-indicated dns servers we can use the host-routes already set for those and kill two bugs with one fix. bug:5898904 Change-Id: Ida8777687994f353b2d4f2c7db5d6ea4b6ac3882
This commit is contained in:
@@ -118,7 +118,7 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
"192.168.48.2", "192.168.48.254",
|
||||
};
|
||||
|
||||
private String[] mDnsServers;
|
||||
private String[] mDefaultDnsServers;
|
||||
private static final String DNS_DEFAULT_SERVER1 = "8.8.8.8";
|
||||
private static final String DNS_DEFAULT_SERVER2 = "8.8.4.4";
|
||||
|
||||
@@ -171,9 +171,9 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
updateConfiguration();
|
||||
|
||||
// TODO - remove and rely on real notifications of the current iface
|
||||
mDnsServers = new String[2];
|
||||
mDnsServers[0] = DNS_DEFAULT_SERVER1;
|
||||
mDnsServers[1] = DNS_DEFAULT_SERVER2;
|
||||
mDefaultDnsServers = new String[2];
|
||||
mDefaultDnsServers[0] = DNS_DEFAULT_SERVER1;
|
||||
mDefaultDnsServers[1] = DNS_DEFAULT_SERVER2;
|
||||
}
|
||||
|
||||
void updateConfiguration() {
|
||||
@@ -1245,7 +1245,7 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
}
|
||||
}
|
||||
try {
|
||||
mNMService.setDnsForwarders(mDnsServers);
|
||||
mNMService.setDnsForwarders(mDefaultDnsServers);
|
||||
} catch (Exception e) {
|
||||
transitionTo(mSetDnsForwardersErrorState);
|
||||
return false;
|
||||
@@ -1321,7 +1321,19 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
try {
|
||||
linkProperties = mConnService.getLinkProperties(upType);
|
||||
} catch (RemoteException e) { }
|
||||
if (linkProperties != null) iface = linkProperties.getInterfaceName();
|
||||
if (linkProperties != null) {
|
||||
iface = linkProperties.getInterfaceName();
|
||||
String[] dnsServers = mDefaultDnsServers;
|
||||
Collection<InetAddress> dnses = linkProperties.getDnses();
|
||||
if (dnses != null) {
|
||||
dnsServers = NetworkUtils.makeStrings(dnses);
|
||||
}
|
||||
try {
|
||||
mNMService.setDnsForwarders(dnsServers);
|
||||
} catch (Exception e) {
|
||||
transitionTo(mSetDnsForwardersErrorState);
|
||||
}
|
||||
}
|
||||
}
|
||||
notifyTetheredOfNewUpstreamIface(iface);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user