Clean up gPrivateDnsConfiguration
Use singleton to get an instance of PrivateDnsConfiguration.
The lifetime of the instance is almost aligned with the
DnsResolver service.
Bug: 130686826
Test: cd packages/modules/DnsResolver && atest
Change-Id: Id71f90c7d0508eacd1b20db42408a78d9ea1e03a
diff --git a/ResolverController.cpp b/ResolverController.cpp
index be0b989..6a10326 100644
--- a/ResolverController.cpp
+++ b/ResolverController.cpp
@@ -184,7 +184,7 @@
resolv_delete_cache_for_net(netId);
mDns64Configuration.stopPrefixDiscovery(netId);
- gPrivateDnsConfiguration.clear(netId);
+ PrivateDnsConfiguration::getInstance().clear(netId);
}
int ResolverController::createNetworkCache(unsigned netId) {
@@ -215,9 +215,9 @@
// 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 =
- gPrivateDnsConfiguration.set(resolverParams.netId, netcontext.app_mark, tlsServers,
- resolverParams.tlsName, resolverParams.caCertificate);
+ const int err = PrivateDnsConfiguration::getInstance().set(
+ resolverParams.netId, netcontext.app_mark, tlsServers, resolverParams.tlsName,
+ resolverParams.caCertificate);
if (err != 0) {
return err;
@@ -254,7 +254,7 @@
// Serialize the information for binder.
ResolverStats::encodeAll(res_stats, stats);
- const auto privateDnsStatus = gPrivateDnsConfiguration.getStatus(netId);
+ const auto privateDnsStatus = PrivateDnsConfiguration::getInstance().getStatus(netId);
for (const auto& pair : privateDnsStatus.serversMap) {
tlsServers->push_back(addrToString(&pair.first.ss));
}
@@ -347,7 +347,7 @@
}
mDns64Configuration.dump(dw, netId);
- const auto privateDnsStatus = gPrivateDnsConfiguration.getStatus(netId);
+ const auto privateDnsStatus = PrivateDnsConfiguration::getInstance().getStatus(netId);
dw.println("Private DNS mode: %s", getPrivateDnsModeString(privateDnsStatus.mode));
if (privateDnsStatus.serversMap.size() == 0) {
dw.println("No Private DNS servers configured");