Merge "Minor changes for DnsUtils and its test" am: 8c4ef95cbb
am: dfda15715d Change-Id: Ic1990922e599884582606d1a4d7da3950200d25c
This commit is contained in:
@@ -141,14 +141,17 @@ public class DnsUtils {
|
||||
*/
|
||||
public static @NonNull List<InetAddress> rfc6724Sort(@Nullable Network network,
|
||||
@NonNull List<InetAddress> answers) {
|
||||
List<SortableAddress> sortableAnswerList = new ArrayList<>();
|
||||
answers.forEach(addr -> sortableAnswerList.add(
|
||||
new SortableAddress(addr, findSrcAddress(network, addr))));
|
||||
final ArrayList<SortableAddress> sortableAnswerList = new ArrayList<>();
|
||||
for (InetAddress addr : answers) {
|
||||
sortableAnswerList.add(new SortableAddress(addr, findSrcAddress(network, addr)));
|
||||
}
|
||||
|
||||
Collections.sort(sortableAnswerList, sRfc6724Comparator);
|
||||
|
||||
final List<InetAddress> sortedAnswers = new ArrayList<>();
|
||||
sortableAnswerList.forEach(ans -> sortedAnswers.add(ans.address));
|
||||
for (SortableAddress ans : sortableAnswerList) {
|
||||
sortedAnswers.add(ans.address);
|
||||
}
|
||||
|
||||
return sortedAnswers;
|
||||
}
|
||||
|
||||
@@ -57,24 +57,38 @@ public class DnsUtilsTest {
|
||||
@Test
|
||||
public void testRfc6724Comparator() {
|
||||
final List<DnsUtils.SortableAddress> test = Arrays.asList(
|
||||
makeSortableAddress("216.58.200.36"), // Ipv4
|
||||
makeSortableAddress("2404:6800:4008:801::2004"), // global
|
||||
makeSortableAddress("::1"), // loop back
|
||||
makeSortableAddress("fe80::c46f:1cff:fe04:39b4"), // link local
|
||||
makeSortableAddress("::ffff:192.168.95.3"), // IPv4-mapped IPv6
|
||||
makeSortableAddress("2001::47c1"), // teredo tunneling
|
||||
makeSortableAddress("::216.58.200.36"), // IPv4-compatible
|
||||
makeSortableAddress("3ffe::1234:5678")); // 6bone
|
||||
// Ipv4
|
||||
makeSortableAddress("216.58.200.36", "192.168.1.1"),
|
||||
// global with different scope src
|
||||
makeSortableAddress("2404:6800:4008:801::2004", "fe80::1111:2222"),
|
||||
// global without src addr
|
||||
makeSortableAddress("2404:6800:cafe:801::1"),
|
||||
// loop back
|
||||
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(
|
||||
stringToAddress("::1"), // loop back
|
||||
stringToAddress("fe80::c46f:1cff:fe04:39b4"), // link local
|
||||
stringToAddress("2404:6800:4008:801::2004"), // global
|
||||
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("::216.58.200.36"), // IPv4-compatible
|
||||
stringToAddress("3ffe::1234:5678")); // 6bone
|
||||
stringToAddress("::216.58.200.36"), // IPv4-compatible
|
||||
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());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user