Merge "Eschew unspecified IP addresses for DNS servers" am: 0ac7232b7c

am: 9b986734e4

Change-Id: I2a3817e030adeef54012177380e886771502308c
This commit is contained in:
Erik Kline
2017-01-19 09:49:43 +00:00
committed by android-build-merger

View File

@@ -865,13 +865,7 @@ public class IpManager extends StateMachine {
for (RouteInfo route : netlinkLinkProperties.getRoutes()) { for (RouteInfo route : netlinkLinkProperties.getRoutes()) {
newLp.addRoute(route); newLp.addRoute(route);
} }
for (InetAddress dns : netlinkLinkProperties.getDnsServers()) { addAllReachableDnsServers(newLp, netlinkLinkProperties.getDnsServers());
// Only add likely reachable DNS servers.
// TODO: investigate deleting this.
if (newLp.isReachable(dns)) {
newLp.addDnsServer(dns);
}
}
// [3] Add in data from DHCPv4, if available. // [3] Add in data from DHCPv4, if available.
// //
@@ -881,13 +875,7 @@ public class IpManager extends StateMachine {
for (RouteInfo route : mDhcpResults.getRoutes(mInterfaceName)) { for (RouteInfo route : mDhcpResults.getRoutes(mInterfaceName)) {
newLp.addRoute(route); newLp.addRoute(route);
} }
for (InetAddress dns : mDhcpResults.dnsServers) { addAllReachableDnsServers(newLp, mDhcpResults.dnsServers);
// Only add likely reachable DNS servers.
// TODO: investigate deleting this.
if (newLp.isReachable(dns)) {
newLp.addDnsServer(dns);
}
}
newLp.setDomains(mDhcpResults.domains); newLp.setDomains(mDhcpResults.domains);
if (mDhcpResults.mtu != 0) { if (mDhcpResults.mtu != 0) {
@@ -909,6 +897,18 @@ public class IpManager extends StateMachine {
return newLp; return newLp;
} }
private static void addAllReachableDnsServers(
LinkProperties lp, Iterable<InetAddress> dnses) {
// TODO: Investigate deleting this reachability check. We should be
// able to pass everything down to netd and let netd do evaluation
// and RFC6724-style sorting.
for (InetAddress dns : dnses) {
if (!dns.isAnyLocalAddress() && lp.isReachable(dns)) {
lp.addDnsServer(dns);
}
}
}
// Returns false if we have lost provisioning, true otherwise. // Returns false if we have lost provisioning, true otherwise.
private boolean handleLinkPropertiesUpdate(boolean sendCallbacks) { private boolean handleLinkPropertiesUpdate(boolean sendCallbacks) {
final LinkProperties newLp = assembleLinkProperties(); final LinkProperties newLp = assembleLinkProperties();