Inform the DNS resolver of the interfaces in a network.
Also simplify DnsManagerTest by using the autogenerated equals() method in ResolverParamsParcel instead of a hand-rolled comparison method. Test: covered by existing tests Change-Id: Ie1b1bd011a440be0175420f903f39a4153d2245e
This commit is contained in:
parent
0469317169
commit
191f1b2c8c
3 changed files with 8 additions and 36 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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<ResolverParamsParcel> 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
|
||||
|
|
|
|||
Loading…
Reference in a new issue