From 30bebea049d75335e188e29295107672640c2537 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 --- 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 abaeeb3e49..027d0e0a9e 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-build", "modules-utils-os", "net-utils-device-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); }