bug 1451750 - treat rrsets from different resolvers as different r?mcmanus draft
authorDaniel Stenberg <daniel@haxx.se>
Thu, 05 Apr 2018 16:30:10 +0200
changeset 777917 0b8e34332b1607be50c7e5f2eae4688366692bc8
parent 777562 071ee904485e21e19ca08456d32bce6825b77a26
push id105331
push userbmo:daniel@haxx.se
push dateThu, 05 Apr 2018 14:32:34 +0000
reviewersmcmanus
bugs1451750
milestone61.0a1
bug 1451750 - treat rrsets from different resolvers as different r?mcmanus ... even if all the addresses are identical. Otherwise the IsTRR() bit would be dropped, resulting in about:networking showing false for this entry while in reality being TRR. Or vice versa. MozReview-Commit-ID: JABLm09iCnn
netwerk/dns/nsHostResolver.cpp
--- a/netwerk/dns/nsHostResolver.cpp
+++ b/netwerk/dns/nsHostResolver.cpp
@@ -1432,16 +1432,20 @@ different_rrset(AddrInfo *rrset1, AddrIn
     if (!rrset1 || !rrset2) {
         return true;
     }
 
     LOG(("different_rrset %s\n", rrset1->mHostName));
     nsTArray<NetAddr> orderedSet1;
     nsTArray<NetAddr> orderedSet2;
 
+    if (rrset1->IsTRR() != rrset2->IsTRR()) {
+        return true;
+    }
+
     for (NetAddrElement *element = rrset1->mAddresses.getFirst();
          element; element = element->getNext()) {
         if (LOG_ENABLED()) {
             char buf[128];
             NetAddrToString(&element->mAddress, buf, 128);
             LOG(("different_rrset add to set 1 %s\n", buf));
         }
         orderedSet1.InsertElementAt(orderedSet1.Length(), element->mAddress);