diff options
| author | Luke Huang <huangluke@google.com> | 2021-07-06 01:48:02 +0800 |
|---|---|---|
| committer | Luke Huang <huangluke@google.com> | 2021-07-14 13:53:56 +0000 |
| commit | 2fe9c73fb0f751bfb69e2f66fe55cb5d9f8acfdf (patch) | |
| tree | eb8b39be8d6a25f81c73dae8f61cb9ef44c5180d /ResolverController.cpp | |
| parent | 6c32fc9029a1a33dfac1099b8a119b600f052321 (diff) | |
Link Rust DoH into DnsResolver with default off
Expect no behavior changes since DoH is disabled.
Test: atest
Bug: 155855709
Change-Id: Ie99cc4c4035c9bfda4a125f5ebf57e2e2f9d2036
Diffstat (limited to 'ResolverController.cpp')
| -rw-r--r-- | ResolverController.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/ResolverController.cpp b/ResolverController.cpp index c983a151..9e693d31 100644 --- a/ResolverController.cpp +++ b/ResolverController.cpp @@ -34,6 +34,7 @@ #include "ResolverStats.h" #include "resolv_cache.h" #include "stats.h" +#include "util.h" using aidl::android::net::ResolverParamsParcel; using aidl::android::net::resolv::aidl::IDnsResolverUnsolicitedEventListener; @@ -169,6 +170,7 @@ void ResolverController::destroyNetworkCache(unsigned netId) { resolv_delete_cache_for_net(netId); mDns64Configuration.stopPrefixDiscovery(netId); PrivateDnsConfiguration::getInstance().clear(netId); + if (isDoHEnabled()) PrivateDnsConfiguration::getInstance().clearDoh(netId); // Don't get this instance in PrivateDnsConfiguration. It's probe to deadlock. DnsTlsDispatcher::getInstance().forceCleanup(netId); @@ -206,9 +208,9 @@ int ResolverController::setResolverConfiguration(const ResolverParamsParcel& res // through a different network. For example, on a VPN with no DNS servers (Do53), if the VPN // applies to UID 0, dns_mark is assigned for default network rathan the VPN. (note that it's // possible that a VPN doesn't have any DNS servers but DoT servers in DNS strict mode) - const int err = PrivateDnsConfiguration::getInstance().set( - resolverParams.netId, netcontext.app_mark, tlsServers, resolverParams.tlsName, - resolverParams.caCertificate); + int err = PrivateDnsConfiguration::getInstance().set(resolverParams.netId, netcontext.app_mark, + tlsServers, resolverParams.tlsName, + resolverParams.caCertificate); if (err != 0) { return err; @@ -225,6 +227,15 @@ int ResolverController::setResolverConfiguration(const ResolverParamsParcel& res return err; } + if (isDoHEnabled()) + err = PrivateDnsConfiguration::getInstance().setDoh( + resolverParams.netId, netcontext.app_mark, tlsServers, resolverParams.tlsName, + resolverParams.caCertificate); + + if (err != 0) { + return err; + } + res_params res_params = {}; res_params.sample_validity = resolverParams.sampleValiditySeconds; res_params.success_threshold = resolverParams.successThreshold; |
