aboutsummaryrefslogtreecommitdiff
path: root/ResolverController.cpp
diff options
context:
space:
mode:
authorLuke Huang <huangluke@google.com>2021-07-06 01:48:02 +0800
committerLuke Huang <huangluke@google.com>2021-07-14 13:53:56 +0000
commit2fe9c73fb0f751bfb69e2f66fe55cb5d9f8acfdf (patch)
treeeb8b39be8d6a25f81c73dae8f61cb9ef44c5180d /ResolverController.cpp
parent6c32fc9029a1a33dfac1099b8a119b600f052321 (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.cpp17
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;