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
This commit is contained in:
Remi NGUYEN VAN
2021-08-06 14:15:31 +09:00
committed by Lorenzo Colitti
parent 93bda73970
commit 30bebea049
3 changed files with 11 additions and 6 deletions

View File

@@ -65,7 +65,7 @@ java_library {
"ServiceConnectivityResources", "ServiceConnectivityResources",
], ],
static_libs: [ static_libs: [
"dnsresolver_aidl_interface-V8-java", "dnsresolver_aidl_interface-V9-java",
"modules-utils-build", "modules-utils-build",
"modules-utils-os", "modules-utils-os",
"net-utils-device-common", "net-utils-device-common",

View File

@@ -38,7 +38,6 @@ import android.net.IDnsResolver;
import android.net.InetAddresses; import android.net.InetAddresses;
import android.net.LinkProperties; import android.net.LinkProperties;
import android.net.Network; import android.net.Network;
import android.net.ResolverOptionsParcel;
import android.net.ResolverParamsParcel; import android.net.ResolverParamsParcel;
import android.net.Uri; import android.net.Uri;
import android.net.shared.PrivateDnsConfig; import android.net.shared.PrivateDnsConfig;
@@ -384,7 +383,6 @@ public class DnsManager {
.collect(Collectors.toList())) .collect(Collectors.toList()))
: useTls ? paramsParcel.servers // Opportunistic : useTls ? paramsParcel.servers // Opportunistic
: new String[0]; // Off : new String[0]; // Off
paramsParcel.resolverOptions = new ResolverOptionsParcel();
paramsParcel.transportTypes = transportTypes; paramsParcel.transportTypes = transportTypes;
// Prepare to track the validation status of the DNS servers in the // Prepare to track the validation status of the DNS servers in the
// resolver config when private DNS is in opportunistic or strict mode. // resolver config when private DNS is in opportunistic or strict mode.

View File

@@ -43,6 +43,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context; import android.content.Context;
import android.net.ConnectivitySettingsManager; import android.net.ConnectivitySettingsManager;
import android.net.IDnsResolver; import android.net.IDnsResolver;
@@ -106,8 +107,14 @@ public class DnsManagerTest {
@Mock IDnsResolver mMockDnsResolver; @Mock IDnsResolver mMockDnsResolver;
private void assertResolverOptionsEquals( private void assertResolverOptionsEquals(
@NonNull ResolverOptionsParcel actual, @Nullable ResolverOptionsParcel actual,
@NonNull ResolverOptionsParcel expected) { @Nullable ResolverOptionsParcel expected) {
if (actual == null) {
assertNull(expected);
return;
} else {
assertNotNull(expected);
}
assertEquals(actual.hosts, expected.hosts); assertEquals(actual.hosts, expected.hosts);
assertEquals(actual.tcMode, expected.tcMode); assertEquals(actual.tcMode, expected.tcMode);
assertEquals(actual.enforceDnsUid, expected.enforceDnsUid); assertEquals(actual.enforceDnsUid, expected.enforceDnsUid);
@@ -365,7 +372,7 @@ public class DnsManagerTest {
expectedParams.tlsName = ""; expectedParams.tlsName = "";
expectedParams.tlsServers = new String[]{"3.3.3.3", "4.4.4.4"}; expectedParams.tlsServers = new String[]{"3.3.3.3", "4.4.4.4"};
expectedParams.transportTypes = TEST_TRANSPORT_TYPES; expectedParams.transportTypes = TEST_TRANSPORT_TYPES;
expectedParams.resolverOptions = new ResolverOptionsParcel(); expectedParams.resolverOptions = null;
assertResolverParamsEquals(actualParams, expectedParams); assertResolverParamsEquals(actualParams, expectedParams);
} }