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");