-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathECH_DOH_123.patch
54 lines (51 loc) · 2.03 KB
/
ECH_DOH_123.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
components/cronet/url_request_context_config.cc | 33 +++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
index f96c5dadbedc5..0103bd3ae6579 100644
--- a/components/cronet/url_request_context_config.cc
+++ b/components/cronet/url_request_context_config.cc
@@ -28,6 +28,7 @@
#include "net/dns/context_host_resolver.h"
#include "net/dns/host_resolver.h"
#include "net/dns/mapped_host_resolver.h"
+#include "net/dns/public/dns_protocol.h"
#include "net/http/http_network_session.h"
#include "net/http/http_server_properties.h"
#include "net/log/net_log.h"
@@ -814,6 +815,38 @@ void URLRequestContextConfig::ConfigureURLRequestContextBuilder(
SetContextBuilderExperimentalOptions(context_builder, &session_params,
quic_context->params(), bound_network);
+
+ // ENVOY
+
+ net::DnsConfigOverrides overrides = net::DnsConfigOverrides::CreateOverridingEverythingWithDefaults();
+
+ // force secure DNS
+ overrides.secure_dns_mode = net::SecureDnsMode::kSecure;
+
+ // set Cloudflare as the DoH server
+ overrides.dns_over_https_config = net::DnsOverHttpsConfig::FromString(R"(
+ {
+ "servers": [{
+ "template": "https://chrome.cloudflare-dns.com/dns-query",
+ "endpoints": [{
+ "ips": ["1.1.1.1", "2606:4700:4700::1111"]
+ }, {
+ "ips": ["1.0.0.1", "2606:4700:4700::1001"]
+ }]
+ }]
+ }
+ )");
+
+ net::HostResolver::ManagerOptions host_resolver_manager_options;
+ host_resolver_manager_options.dns_config_overrides = overrides;
+ std::unique_ptr<net::HostResolver> host_resolver;
+ host_resolver = net::HostResolver::CreateStandaloneResolver(
+ net::NetLog::Get(), std::move(host_resolver_manager_options));
+
+ context_builder->set_host_resolver(std::move(host_resolver));
+
+ // END ENVOY
+
context_builder->set_http_network_session_params(session_params);
context_builder->set_quic_context(std::move(quic_context));