From 0ccf3fb46122e1217d5ae0d263dade1147c19393 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Fri, 6 Aug 2021 14:15:31 +0900 Subject: [PATCH] Use dns resolver v9 in connectivity and set resolverOptions to null. The resolverOptions member of the ResolverParamsParcel has never been set by AOSP code but was only used by OEMs modifying DnsManager. Now that DnsManager is mainline code, this is no longer possible. So the DNS resolver introduces a new setResolverOptions IPC to allow OEMs to set the options and makes the resolverOptions nullable. Make DnsManager set resolverOptions to null, to ensure that when DnsManager calls setResolverConfiguration, it does not overwrite any options set by the OEM. Bug: 194048056 Test: Device boots and has connectivity Change-Id: I310a79521f5a365e50e2c65e9dd87d9b68f105d7 Merged-In: I310a79521f5a365e50e2c65e9dd87d9b68f105d7 --- service/Android.bp | 2 +- .../com/android/server/connectivity/DnsManager.java | 2 -- .../android/server/connectivity/DnsManagerTest.java | 13 ++++++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/service/Android.bp b/service/Android.bp index 7fe0e2b382..39f970d209 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -65,7 +65,7 @@ java_library { "ServiceConnectivityResources", ], static_libs: [ - "dnsresolver_aidl_interface-V8-java", + "dnsresolver_aidl_interface-V9-java", "modules-utils-os", "net-utils-device-common", "net-utils-framework-common", diff --git a/service/src/com/android/server/connectivity/DnsManager.java b/service/src/com/android/server/connectivity/DnsManager.java index 05b12bad55..1493cae79a 100644 --- a/service/src/com/android/server/connectivity/DnsManager.java +++ b/service/src/com/android/server/connectivity/DnsManager.java @@ -38,7 +38,6 @@ import android.net.IDnsResolver; import android.net.InetAddresses; import android.net.LinkProperties; import android.net.Network; -import android.net.ResolverOptionsParcel; import android.net.ResolverParamsParcel; import android.net.Uri; import android.net.shared.PrivateDnsConfig; @@ -384,7 +383,6 @@ public class DnsManager { .collect(Collectors.toList())) : useTls ? paramsParcel.servers // Opportunistic : new String[0]; // Off - paramsParcel.resolverOptions = new ResolverOptionsParcel(); paramsParcel.transportTypes = transportTypes; // Prepare to track the validation status of the DNS servers in the // resolver config when private DNS is in opportunistic or strict mode. diff --git a/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java b/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java index 9ef558fcea..24aecdb90a 100644 --- a/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java +++ b/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java @@ -43,6 +43,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.Context; import android.net.ConnectivitySettingsManager; import android.net.IDnsResolver; @@ -106,8 +107,14 @@ public class DnsManagerTest { @Mock IDnsResolver mMockDnsResolver; private void assertResolverOptionsEquals( - @NonNull ResolverOptionsParcel actual, - @NonNull ResolverOptionsParcel expected) { + @Nullable ResolverOptionsParcel actual, + @Nullable ResolverOptionsParcel expected) { + if (actual == null) { + assertNull(expected); + return; + } else { + assertNotNull(expected); + } assertEquals(actual.hosts, expected.hosts); assertEquals(actual.tcMode, expected.tcMode); assertEquals(actual.enforceDnsUid, expected.enforceDnsUid); @@ -365,7 +372,7 @@ public class DnsManagerTest { expectedParams.tlsName = ""; expectedParams.tlsServers = new String[]{"3.3.3.3", "4.4.4.4"}; expectedParams.transportTypes = TEST_TRANSPORT_TYPES; - expectedParams.resolverOptions = new ResolverOptionsParcel(); + expectedParams.resolverOptions = null; assertResolverParamsEquals(actualParams, expectedParams); }