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,
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user