|
55 | 55 | import java.io.FileDescriptor; |
56 | 56 | import java.io.PrintWriter; |
57 | 57 | import java.net.InetAddress; |
| 58 | +import java.net.Inet4Address; |
58 | 59 | import java.util.ArrayList; |
59 | 60 | import java.util.Collection; |
60 | 61 | import java.util.HashMap; |
@@ -1326,7 +1327,17 @@ protected void chooseUpstreamType(boolean tryCell) { |
1326 | 1327 | String[] dnsServers = mDefaultDnsServers; |
1327 | 1328 | Collection<InetAddress> dnses = linkProperties.getDnses(); |
1328 | 1329 | if (dnses != null) { |
1329 | | - dnsServers = NetworkUtils.makeStrings(dnses); |
| 1330 | + // we currently only handle IPv4 |
| 1331 | + ArrayList<InetAddress> v4Dnses = |
| 1332 | + new ArrayList<InetAddress>(dnses.size()); |
| 1333 | + for (InetAddress dnsAddress : dnses) { |
| 1334 | + if (dnsAddress instanceof Inet4Address) { |
| 1335 | + v4Dnses.add(dnsAddress); |
| 1336 | + } |
| 1337 | + } |
| 1338 | + if (v4Dnses.size() > 0) { |
| 1339 | + dnsServers = NetworkUtils.makeStrings(v4Dnses); |
| 1340 | + } |
1330 | 1341 | } |
1331 | 1342 | try { |
1332 | 1343 | mNMService.setDnsForwarders(dnsServers); |
@@ -1384,11 +1395,12 @@ class TetherModeAliveState extends TetherMasterUtilState { |
1384 | 1395 | boolean mTryCell = !WAIT_FOR_NETWORK_TO_SETTLE; |
1385 | 1396 | @Override |
1386 | 1397 | public void enter() { |
| 1398 | + turnOnMasterTetherSettings(); // may transition us out |
| 1399 | + |
1387 | 1400 | mTryCell = !WAIT_FOR_NETWORK_TO_SETTLE; // better try something first pass |
1388 | 1401 | // or crazy tests cases will fail |
1389 | 1402 | chooseUpstreamType(mTryCell); |
1390 | 1403 | mTryCell = !mTryCell; |
1391 | | - turnOnMasterTetherSettings(); // may transition us out |
1392 | 1404 | } |
1393 | 1405 | @Override |
1394 | 1406 | public void exit() { |
|
0 commit comments