Test DnsTlsServer comparison operators

This also includes scope in the v6 address for comparisons

Test: Tests pass
Bug: 63731765
Change-Id: Iadb3ce74c3b11b2aab0c878f23e914e84c46aff3
diff --git a/server/dns/DnsTlsServer.cpp b/server/dns/DnsTlsServer.cpp
index 38dc6c5..9ac9893 100644
--- a/server/dns/DnsTlsServer.cpp
+++ b/server/dns/DnsTlsServer.cpp
@@ -89,7 +89,6 @@
 namespace net {
 
 // This comparison ignores ports and fingerprints.
-// TODO: respect IPv6 scope id (e.g. link-local addresses).
 bool AddressComparator::operator() (const DnsTlsServer& x, const DnsTlsServer& y) const {
     if (x.ss.ss_family != y.ss.ss_family) {
         return x.ss.ss_family < y.ss.ss_family;
@@ -102,7 +101,8 @@
     } else if (x.ss.ss_family == AF_INET6) {
         const sockaddr_in6& x_sin6 = reinterpret_cast<const sockaddr_in6&>(x.ss);
         const sockaddr_in6& y_sin6 = reinterpret_cast<const sockaddr_in6&>(y.ss);
-        return x_sin6.sin6_addr < y_sin6.sin6_addr;
+        return std::tie(x_sin6.sin6_addr, x_sin6.sin6_scope_id) <
+                std::tie(y_sin6.sin6_addr, y_sin6.sin6_scope_id);
     }
     return false;  // Unknown address type.  This is an error.
 }