gecko-dev/netwerk/dns
Daniel Stenberg e5d3226694 bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin
Provides an optional resolver mechanism for Firefox that allows running
together with or instead of the native resolver.

TRR offers resolving of host names using a dedicated DNS-over-HTTPS server
(HTTPS is required, HTTP/2 is preferable).

DNS-over-HTTPS (DOH) allows DNS resolves with enhanced privacy, secure
transfers and improved performance.

To keep the failure rate at a minimum, the TRR system manages a dynamic
persistent blacklist for host names that can't be resolved with DOH but works
with the native resolver. Blacklisted entries will not be retried over DOH for
a couple of days. "localhost" and names in the ".local" TLD will not be
resolved via DOH.

TRR is preffed OFF by default and you need to set a URI for an available DOH
server to be able to use it. Since the URI for DOH is set with a name itself,
it may have to use the native resolver for bootstrapping. (Optionally, the
user can set the IP address of the DOH server in a pref to avoid the required
initial native resolve.)

When TRR starts up, it will first verify that it works by checking a
"confirmation" domain name. This confirmation domain is a pref by default set
to "example.com". TRR will also by default await the captive-portal detection
to raise its green flag before getting activated.

All prefs for TRR are under the "network.trr" hierarchy.

The DNS-over-HTTPS spec: https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-03

MozReview-Commit-ID: GuuU6vjTjlm

--HG--
extra : rebase_source : 53fcca757334090ac05fec540ef29d109d5ceed3
2018-02-01 10:20:49 +01:00
..
mdns Bug 1432992, part 1 - Remove definitions of Ci, Cr, Cc, and Cu. r=florian 2018-02-06 09:36:57 -08:00
ChildDNSService.cpp Bug 1412726: Clean up XPCOM singleton constructor refcount handling. r=froydnj 2017-10-29 16:02:40 -07:00
ChildDNSService.h Bug 1409249: Require singleton constructors to return explicit already_AddRefed. r=froydnj 2017-10-16 21:08:42 -07:00
DNS.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
DNS.h bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
DNSListenerProxy.cpp
DNSListenerProxy.h Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm 2017-06-14 09:27:17 +08:00
DNSRequestChild.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
DNSRequestChild.h Bug 1337893 - Part 2: Making the DNS cache be aware of originAttributes. r=valentin 2017-02-14 12:25:35 +08:00
DNSRequestParent.cpp Bug 1365101 - Convert NS_GetCurrentThread uses in netwerk/ (r=meyhemer) 2017-06-12 20:21:43 -07:00
DNSRequestParent.h Bug 1337893 - Part 2: Making the DNS cache be aware of originAttributes. r=valentin 2017-02-14 12:25:35 +08:00
effective_tld_names.dat Bug 1415870 - Update psl list and related tests. r=gerv 2017-11-15 12:35:07 +00:00
GetAddrInfo.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
GetAddrInfo.h bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
moz.build bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsDNSService2.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsDNSService2.h bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsEffectiveTLDService.cpp Bug 1396958 - Make eTLD cache thread-safe. r=valentin 2017-09-05 12:26:51 -07:00
nsEffectiveTLDService.h Bug 1380154 - Part 3: Cache most recently used eTLD entries. r=njn, r=jduell 2017-08-08 12:21:10 -07:00
nsHostResolver.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsHostResolver.h bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsIDNKitInterface.h Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
nsIDNService.cpp Bug 1414096 (attempt 2) - Remove support for nsISupportsString values in nsPrefBranch::{get,set}ComplexValue(). r=florian. 2017-11-10 09:07:48 +11:00
nsIDNService.h Bug 1402048 - Remove the legacy non-IDNA2008 code path from nsIDNService, now that we always require ICU to build. r=valentin 2017-09-22 19:25:50 +01:00
nsIDNSListener.idl
nsIDNSRecord.idl bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsIDNSService.idl bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
nsIEffectiveTLDService.idl
nsIIDNService.idl
nsPIDNSService.idl
PDNSParams.h
PDNSRequest.ipdl Bug 1337893 - Part 1: Updating idl and ipdl files of DNS to make them originAttributes aware. r=valentin 2017-02-15 11:53:37 +08:00
PDNSRequestParams.ipdlh
prepare_tlds.py Bug 1380154 - Part 2: Generate a DAFSA and use it for eTLDs. r=jduell 2017-07-17 16:10:18 -07:00
punycode.c
punycode.h
TRR.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
TRR.h bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
TRRService.cpp bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00
TRRService.h bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin 2018-02-01 10:20:49 +01:00