Merge "Minor changes for DnsUtils and its test" am: 8c4ef95cbb

am: dfda15715d

Change-Id: Ic1990922e599884582606d1a4d7da3950200d25c
This commit is contained in:
Luke Huang
2019-05-29 03:33:34 -07:00
committed by android-build-merger
2 changed files with 33 additions and 16 deletions

View File

@@ -141,14 +141,17 @@ public class DnsUtils {
*/ */
public static @NonNull List<InetAddress> rfc6724Sort(@Nullable Network network, public static @NonNull List<InetAddress> rfc6724Sort(@Nullable Network network,
@NonNull List<InetAddress> answers) { @NonNull List<InetAddress> answers) {
List<SortableAddress> sortableAnswerList = new ArrayList<>(); final ArrayList<SortableAddress> sortableAnswerList = new ArrayList<>();
answers.forEach(addr -> sortableAnswerList.add( for (InetAddress addr : answers) {
new SortableAddress(addr, findSrcAddress(network, addr)))); sortableAnswerList.add(new SortableAddress(addr, findSrcAddress(network, addr)));
}
Collections.sort(sortableAnswerList, sRfc6724Comparator); Collections.sort(sortableAnswerList, sRfc6724Comparator);
final List<InetAddress> sortedAnswers = new ArrayList<>(); final List<InetAddress> sortedAnswers = new ArrayList<>();
sortableAnswerList.forEach(ans -> sortedAnswers.add(ans.address)); for (SortableAddress ans : sortableAnswerList) {
sortedAnswers.add(ans.address);
}
return sortedAnswers; return sortedAnswers;
} }

View File

@@ -57,24 +57,38 @@ public class DnsUtilsTest {
@Test @Test
public void testRfc6724Comparator() { public void testRfc6724Comparator() {
final List<DnsUtils.SortableAddress> test = Arrays.asList( final List<DnsUtils.SortableAddress> test = Arrays.asList(
makeSortableAddress("216.58.200.36"), // Ipv4 // Ipv4
makeSortableAddress("2404:6800:4008:801::2004"), // global makeSortableAddress("216.58.200.36", "192.168.1.1"),
makeSortableAddress("::1"), // loop back // global with different scope src
makeSortableAddress("fe80::c46f:1cff:fe04:39b4"), // link local makeSortableAddress("2404:6800:4008:801::2004", "fe80::1111:2222"),
makeSortableAddress("::ffff:192.168.95.3"), // IPv4-mapped IPv6 // global without src addr
makeSortableAddress("2001::47c1"), // teredo tunneling makeSortableAddress("2404:6800:cafe:801::1"),
makeSortableAddress("::216.58.200.36"), // IPv4-compatible // loop back
makeSortableAddress("3ffe::1234:5678")); // 6bone makeSortableAddress("::1", "::1"),
// link local
makeSortableAddress("fe80::c46f:1cff:fe04:39b4", "fe80::1"),
// teredo tunneling
makeSortableAddress("2001::47c1", "2001::2"),
// 6bone without src addr
makeSortableAddress("3ffe::1234:5678"),
// IPv4-compatible
makeSortableAddress("::216.58.200.36", "::216.58.200.9"),
// 6bone
makeSortableAddress("3ffe::1234:5678", "3ffe::1234:1"),
// IPv4-mapped IPv6
makeSortableAddress("::ffff:192.168.95.7", "::ffff:192.168.95.1"));
final List<InetAddress> expected = Arrays.asList( final List<InetAddress> expected = Arrays.asList(
stringToAddress("::1"), // loop back stringToAddress("::1"), // loop back
stringToAddress("fe80::c46f:1cff:fe04:39b4"), // link local stringToAddress("fe80::c46f:1cff:fe04:39b4"), // link local
stringToAddress("2404:6800:4008:801::2004"), // global
stringToAddress("216.58.200.36"), // Ipv4 stringToAddress("216.58.200.36"), // Ipv4
stringToAddress("::ffff:192.168.95.3"), // IPv4-mapped IPv6 stringToAddress("::ffff:192.168.95.7"), // IPv4-mapped IPv6
stringToAddress("2001::47c1"), // teredo tunneling stringToAddress("2001::47c1"), // teredo tunneling
stringToAddress("::216.58.200.36"), // IPv4-compatible stringToAddress("::216.58.200.36"), // IPv4-compatible
stringToAddress("3ffe::1234:5678")); // 6bone stringToAddress("3ffe::1234:5678"), // 6bone
stringToAddress("2404:6800:4008:801::2004"), // global with different scope src
stringToAddress("2404:6800:cafe:801::1"), // global without src addr
stringToAddress("3ffe::1234:5678")); // 6bone without src addr
Collections.sort(test, new DnsUtils.Rfc6724Comparator()); Collections.sort(test, new DnsUtils.Rfc6724Comparator());