From 9738b4775809c76359b0ed4b3b828ec9cfe8959e Mon Sep 17 00:00:00 2001 From: Mike Yu Date: Wed, 22 Nov 2023 02:18:19 +0000 Subject: [PATCH] Replace useTls with mode in PrivateDnsConfig In PrivateDnsConfig class, `useTls` is replaced with `mode`. This CL a corresponding change. Bug: 240259333 Test: atest ConnectivityCoverageTests Change-Id: I60c53e52f287fc7fa05543603a62632d934bb2e6 --- .../com/android/server/ConnectivityService.java | 2 +- .../android/server/connectivity/DnsManager.java | 4 ++-- .../server/connectivity/DnsManagerTest.java | 15 ++++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index 8f29078b65..3252acbae8 100755 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -4784,7 +4784,7 @@ public class ConnectivityService extends IConnectivityManager.Stub // If the Private DNS mode is opportunistic, reprogram the DNS servers // in order to restart a validation pass from within netd. final PrivateDnsConfig cfg = mDnsManager.getPrivateDnsConfig(); - if (cfg.useTls && TextUtils.isEmpty(cfg.hostname)) { + if (cfg.inOpportunisticMode()) { updateDnses(nai.linkProperties, null, nai.network.getNetId()); } } diff --git a/service/src/com/android/server/connectivity/DnsManager.java b/service/src/com/android/server/connectivity/DnsManager.java index 894bcc4793..8e6854ae50 100644 --- a/service/src/com/android/server/connectivity/DnsManager.java +++ b/service/src/com/android/server/connectivity/DnsManager.java @@ -302,7 +302,7 @@ public class DnsManager { final PrivateDnsConfig privateDnsCfg = mPrivateDnsMap.getOrDefault(netId, PRIVATE_DNS_OFF); - final boolean useTls = privateDnsCfg.useTls; + final boolean useTls = privateDnsCfg.mode != PRIVATE_DNS_MODE_OFF; final PrivateDnsValidationStatuses statuses = useTls ? mPrivateDnsValidationMap.get(netId) : null; final boolean validated = (null != statuses) && statuses.hasValidatedServer(); @@ -370,7 +370,7 @@ public class DnsManager { // networks like IMS. final PrivateDnsConfig privateDnsCfg = mPrivateDnsMap.getOrDefault(netId, PRIVATE_DNS_OFF); - final boolean useTls = privateDnsCfg.useTls; + final boolean useTls = privateDnsCfg.mode != PRIVATE_DNS_MODE_OFF; final boolean strictMode = privateDnsCfg.inStrictMode(); paramsParcel.netId = netId; diff --git a/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java b/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java index afb9abdd50..44512bbd81 100644 --- a/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java +++ b/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java @@ -19,6 +19,7 @@ package com.android.server.connectivity; import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_DEFAULT_MODE; import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE; import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF; +import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OPPORTUNISTIC; import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME; import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER; import static android.net.NetworkCapabilities.MAX_TRANSPORT; @@ -329,14 +330,14 @@ public class DnsManagerTest { public void testOverrideDefaultMode() throws Exception { // Hard-coded default is opportunistic mode. final PrivateDnsConfig cfgAuto = DnsManager.getPrivateDnsConfig(mCtx); - assertTrue(cfgAuto.useTls); + assertEquals(PRIVATE_DNS_MODE_OPPORTUNISTIC, cfgAuto.mode); assertEquals("", cfgAuto.hostname); assertEquals(new InetAddress[0], cfgAuto.ips); // Pretend a gservices push sets the default to "off". ConnectivitySettingsManager.setPrivateDnsDefaultMode(mCtx, PRIVATE_DNS_MODE_OFF); final PrivateDnsConfig cfgOff = DnsManager.getPrivateDnsConfig(mCtx); - assertFalse(cfgOff.useTls); + assertEquals(PRIVATE_DNS_MODE_OFF, cfgOff.mode); assertEquals("", cfgOff.hostname); assertEquals(new InetAddress[0], cfgOff.ips); @@ -344,7 +345,7 @@ public class DnsManagerTest { ConnectivitySettingsManager.setPrivateDnsMode(mCtx, PRIVATE_DNS_MODE_PROVIDER_HOSTNAME); ConnectivitySettingsManager.setPrivateDnsHostname(mCtx, "strictmode.com"); final PrivateDnsConfig cfgStrict = DnsManager.getPrivateDnsConfig(mCtx); - assertTrue(cfgStrict.useTls); + assertEquals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, cfgStrict.mode); assertEquals("strictmode.com", cfgStrict.hostname); assertEquals(new InetAddress[0], cfgStrict.ips); } @@ -419,7 +420,7 @@ public class DnsManagerTest { // The PrivateDnsConfig map is empty, so the default PRIVATE_DNS_OFF is returned. PrivateDnsConfig privateDnsCfg = mDnsManager.getPrivateDnsConfig(network); - assertFalse(privateDnsCfg.useTls); + assertEquals(PRIVATE_DNS_MODE_OFF, privateDnsCfg.mode); assertEquals("", privateDnsCfg.hostname); assertEquals(new InetAddress[0], privateDnsCfg.ips); @@ -431,7 +432,7 @@ public class DnsManagerTest { VALIDATION_RESULT_SUCCESS)); mDnsManager.updatePrivateDnsStatus(TEST_NETID, lp); privateDnsCfg = mDnsManager.getPrivateDnsConfig(network); - assertTrue(privateDnsCfg.useTls); + assertEquals(PRIVATE_DNS_MODE_OPPORTUNISTIC, privateDnsCfg.mode); assertEquals("", privateDnsCfg.hostname); assertEquals(new InetAddress[0], privateDnsCfg.ips); @@ -439,14 +440,14 @@ public class DnsManagerTest { mDnsManager.updatePrivateDns(network, new PrivateDnsConfig(tlsName, tlsAddrs)); mDnsManager.updatePrivateDnsStatus(TEST_NETID, lp); privateDnsCfg = mDnsManager.getPrivateDnsConfig(network); - assertTrue(privateDnsCfg.useTls); + assertEquals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, privateDnsCfg.mode); assertEquals(tlsName, privateDnsCfg.hostname); assertEquals(tlsAddrs, privateDnsCfg.ips); // The network is removed, so the PrivateDnsConfig map becomes empty again. mDnsManager.removeNetwork(network); privateDnsCfg = mDnsManager.getPrivateDnsConfig(network); - assertFalse(privateDnsCfg.useTls); + assertEquals(PRIVATE_DNS_MODE_OFF, privateDnsCfg.mode); assertEquals("", privateDnsCfg.hostname); assertEquals(new InetAddress[0], privateDnsCfg.ips); }