diff --git a/service/Android.bp b/service/Android.bp index 1d74efcf31..1dd09a9557 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -188,7 +188,7 @@ java_library { "androidx.annotation_annotation", "connectivity-net-module-utils-bpf", "connectivity_native_aidl_interface-lateststable-java", - "dnsresolver_aidl_interface-V14-java", + "dnsresolver_aidl_interface-V15-java", "modules-utils-shell-command-handler", "net-utils-device-common", "net-utils-device-common-ip", diff --git a/service/src/com/android/server/connectivity/DnsManager.java b/service/src/com/android/server/connectivity/DnsManager.java index 8e6854ae50..ac022298e7 100644 --- a/service/src/com/android/server/connectivity/DnsManager.java +++ b/service/src/com/android/server/connectivity/DnsManager.java @@ -390,6 +390,7 @@ public class DnsManager { : new String[0]; // Off paramsParcel.transportTypes = nc.getTransportTypes(); paramsParcel.meteredNetwork = nc.isMetered(); + paramsParcel.interfaceNames = lp.getAllInterfaceNames().toArray(new String[0]); // Prepare to track the validation status of the DNS servers in the // resolver config when private DNS is in opportunistic or strict mode. if (useTls) { @@ -403,13 +404,14 @@ public class DnsManager { } Log.d(TAG, String.format("sendDnsConfigurationForNetwork(%d, %s, %s, %d, %d, %d, %d, " - + "%d, %d, %s, %s, %s, %b)", paramsParcel.netId, + + "%d, %d, %s, %s, %s, %b, %s)", paramsParcel.netId, Arrays.toString(paramsParcel.servers), Arrays.toString(paramsParcel.domains), paramsParcel.sampleValiditySeconds, paramsParcel.successThreshold, paramsParcel.minSamples, paramsParcel.maxSamples, paramsParcel.baseTimeoutMsec, paramsParcel.retryCount, paramsParcel.tlsName, Arrays.toString(paramsParcel.tlsServers), - Arrays.toString(paramsParcel.transportTypes), paramsParcel.meteredNetwork)); + Arrays.toString(paramsParcel.transportTypes), paramsParcel.meteredNetwork, + Arrays.toString(paramsParcel.interfaceNames))); try { mDnsResolver.setResolverConfiguration(paramsParcel); diff --git a/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java b/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java index 44512bbd81..ea3d2dd06a 100644 --- a/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java +++ b/tests/unit/java/com/android/server/connectivity/DnsManagerTest.java @@ -29,8 +29,6 @@ import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_FAILURE; import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_SUCCESS; -import static com.android.testutils.MiscAsserts.assertContainsExactly; -import static com.android.testutils.MiscAsserts.assertContainsStringsExactly; import static com.android.testutils.MiscAsserts.assertFieldCountEquals; import static org.junit.Assert.assertEquals; @@ -38,12 +36,12 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.eq; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; 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; @@ -74,7 +72,6 @@ import libcore.net.InetAddressUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -122,29 +119,6 @@ public class DnsManagerTest { assertFieldCountEquals(3, ResolverOptionsParcel.class); } - private void assertResolverParamsEquals(@NonNull ResolverParamsParcel actual, - @NonNull ResolverParamsParcel expected) { - assertEquals(actual.netId, expected.netId); - assertEquals(actual.sampleValiditySeconds, expected.sampleValiditySeconds); - assertEquals(actual.successThreshold, expected.successThreshold); - assertEquals(actual.minSamples, expected.minSamples); - assertEquals(actual.maxSamples, expected.maxSamples); - assertEquals(actual.baseTimeoutMsec, expected.baseTimeoutMsec); - assertEquals(actual.retryCount, expected.retryCount); - assertContainsStringsExactly(actual.servers, expected.servers); - assertContainsStringsExactly(actual.domains, expected.domains); - assertEquals(actual.tlsName, expected.tlsName); - assertContainsStringsExactly(actual.tlsServers, expected.tlsServers); - assertContainsStringsExactly(actual.tlsFingerprints, expected.tlsFingerprints); - assertEquals(actual.caCertificate, expected.caCertificate); - assertEquals(actual.tlsConnectTimeoutMs, expected.tlsConnectTimeoutMs); - assertResolverOptionsEquals(actual.resolverOptions, expected.resolverOptions); - assertContainsExactly(actual.transportTypes, expected.transportTypes); - assertEquals(actual.meteredNetwork, expected.meteredNetwork); - assertEquals(actual.dohParams, expected.dohParams); - assertFieldCountEquals(18, ResolverParamsParcel.class); - } - @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -365,11 +339,6 @@ public class DnsManagerTest { mDnsManager.noteDnsServersForNetwork(TEST_NETID, lp); mDnsManager.flushVmDnsCache(); - final ArgumentCaptor resolverParamsParcelCaptor = - ArgumentCaptor.forClass(ResolverParamsParcel.class); - verify(mMockDnsResolver, times(1)).setResolverConfiguration( - resolverParamsParcelCaptor.capture()); - final ResolverParamsParcel actualParams = resolverParamsParcelCaptor.getValue(); final ResolverParamsParcel expectedParams = new ResolverParamsParcel(); expectedParams.netId = TEST_NETID; expectedParams.sampleValiditySeconds = TEST_DEFAULT_SAMPLE_VALIDITY_SECONDS; @@ -384,7 +353,8 @@ public class DnsManagerTest { expectedParams.resolverOptions = null; expectedParams.meteredNetwork = true; expectedParams.dohParams = null; - assertResolverParamsEquals(actualParams, expectedParams); + expectedParams.interfaceNames = new String[]{TEST_IFACENAME}; + verify(mMockDnsResolver, times(1)).setResolverConfiguration(eq(expectedParams)); } @Test