Commit a0f238c1 authored by valenting's avatar valenting
Browse files

Bug 1743995 - Add test for TTL using TRR r=necko-reviewers,kershaw

Depends on D132697

Differential Revision: https://phabricator.services.mozilla.com/D132698
parent 9f136f8a
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ class ChildDNSRecord : public nsIDNSAddrRecord {
  double mTrrFetchDurationNetworkOnly = 0;
  bool mIsTRR = false;
  uint32_t mEffectiveTRRMode = 0;
  uint32_t mTTL = 0;
};

NS_IMPL_ISUPPORTS(ChildDNSRecord, nsIDNSRecord, nsIDNSAddrRecord)
@@ -70,6 +71,7 @@ ChildDNSRecord::ChildDNSRecord(const DNSRecord& reply, uint16_t flags)
  // A shame IPDL gives us no way to grab ownership of array: so copy it.
  const nsTArray<NetAddr>& addrs = reply.addrs();
  mAddresses = addrs.Clone();
  mTTL = reply.ttl();
}

//-----------------------------------------------------------------------------
@@ -182,6 +184,12 @@ ChildDNSRecord::GetEffectiveTRRMode(uint32_t* aMode) {
  return NS_OK;
}

NS_IMETHODIMP
ChildDNSRecord::GetTtl(uint32_t* aTtl) {
  *aTtl = mTTL;
  return NS_OK;
}

class ChildDNSByTypeRecord : public nsIDNSByTypeRecord,
                             public nsIDNSTXTRecord,
                             public nsIDNSHTTPSSVCRecord,
+4 −1
Original line number Diff line number Diff line
@@ -131,10 +131,13 @@ DNSRequestHandler::OnLookupComplete(nsICancelable* request,
    uint32_t effectiveTRRMode = 0;
    rec->GetEffectiveTRRMode(&effectiveTRRMode);

    uint32_t ttl = 0;
    rec->GetTtl(&ttl);

    SendLookupCompletedHelper(
        mIPCActor, DNSRequestResponse(DNSRecord(cname, array, trrFetchDuration,
                                                trrFetchDurationNetworkOnly,
                                                isTRR, effectiveTRRMode)));
                                                isTRR, effectiveTRRMode, ttl)));
  } else {
    SendLookupCompletedHelper(mIPCActor, DNSRequestResponse(status));
  }
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ struct DNSRecord
  double trrFetchDurationNetworkOnly;
  bool isTRR;
  uint32_t effectiveTRRMode;
  uint32_t ttl;
};

union DNSRequestResponse
+3 −0
Original line number Diff line number Diff line
@@ -351,6 +351,9 @@ nsDNSRecord::GetEffectiveTRRMode(uint32_t* aMode) {
  return NS_OK;
}

NS_IMETHODIMP
nsDNSRecord::GetTtl(uint32_t* aTtl) { return mHostRecord->GetTtl(aTtl); }

class nsDNSByTypeRecord : public nsIDNSByTypeRecord,
                          public nsIDNSTXTRecord,
                          public nsIDNSHTTPSSVCRecord {
+6 −0
Original line number Diff line number Diff line
@@ -430,6 +430,12 @@ AddrHostRecord::DnsPriority AddrHostRecord::GetPriority(uint16_t aFlags) {
  return AddrHostRecord::DNS_PRIORITY_LOW;
}

nsresult AddrHostRecord::GetTtl(uint32_t* aResult) {
  NS_ENSURE_ARG(aResult);
  *aResult = mTtl;
  return NS_OK;
}

//----------------------------------------------------------------------------
// TypeHostRecord
//----------------------------------------------------------------------------
Loading