Merge "Backwards-incompatible resolv module API change for making setResolverConfiguration take a parcelable." am: c9308bb32d
am: 009dcb2d12
Change-Id: I6dc9029af0df0d3b391210bd315516bdf1b5e4c9
This commit is contained in:
@@ -34,6 +34,7 @@ import android.net.IDnsResolver;
|
|||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
import android.net.NetworkUtils;
|
import android.net.NetworkUtils;
|
||||||
|
import android.net.ResolverParamsParcel;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.net.shared.PrivateDnsConfig;
|
import android.net.shared.PrivateDnsConfig;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
@@ -311,11 +312,9 @@ public class DnsManager {
|
|||||||
|
|
||||||
public void setDnsConfigurationForNetwork(
|
public void setDnsConfigurationForNetwork(
|
||||||
int netId, LinkProperties lp, boolean isDefaultNetwork) {
|
int netId, LinkProperties lp, boolean isDefaultNetwork) {
|
||||||
final String[] assignedServers = NetworkUtils.makeStrings(lp.getDnsServers());
|
|
||||||
final String[] domainStrs = getDomainStrings(lp.getDomains());
|
|
||||||
|
|
||||||
updateParametersSettings();
|
updateParametersSettings();
|
||||||
final int[] params = { mSampleValidity, mSuccessThreshold, mMinSamples, mMaxSamples };
|
final ResolverParamsParcel paramsParcel = new ResolverParamsParcel();
|
||||||
|
|
||||||
// We only use the PrivateDnsConfig data pushed to this class instance
|
// We only use the PrivateDnsConfig data pushed to this class instance
|
||||||
// from ConnectivityService because it works in coordination with
|
// from ConnectivityService because it works in coordination with
|
||||||
@@ -329,34 +328,44 @@ public class DnsManager {
|
|||||||
|
|
||||||
final boolean useTls = privateDnsCfg.useTls;
|
final boolean useTls = privateDnsCfg.useTls;
|
||||||
final boolean strictMode = privateDnsCfg.inStrictMode();
|
final boolean strictMode = privateDnsCfg.inStrictMode();
|
||||||
final String tlsHostname = strictMode ? privateDnsCfg.hostname : "";
|
paramsParcel.netId = netId;
|
||||||
final String[] tlsServers =
|
paramsParcel.sampleValiditySeconds = mSampleValidity;
|
||||||
|
paramsParcel.successThreshold = mSuccessThreshold;
|
||||||
|
paramsParcel.minSamples = mMinSamples;
|
||||||
|
paramsParcel.maxSamples = mMaxSamples;
|
||||||
|
paramsParcel.servers = NetworkUtils.makeStrings(lp.getDnsServers());
|
||||||
|
paramsParcel.domains = getDomainStrings(lp.getDomains());
|
||||||
|
paramsParcel.tlsName = strictMode ? privateDnsCfg.hostname : "";
|
||||||
|
paramsParcel.tlsServers =
|
||||||
strictMode ? NetworkUtils.makeStrings(
|
strictMode ? NetworkUtils.makeStrings(
|
||||||
Arrays.stream(privateDnsCfg.ips)
|
Arrays.stream(privateDnsCfg.ips)
|
||||||
.filter((ip) -> lp.isReachable(ip))
|
.filter((ip) -> lp.isReachable(ip))
|
||||||
.collect(Collectors.toList()))
|
.collect(Collectors.toList()))
|
||||||
: useTls ? assignedServers // Opportunistic
|
: useTls ? paramsParcel.servers // Opportunistic
|
||||||
: new String[0]; // Off
|
: new String[0]; // Off
|
||||||
|
paramsParcel.tlsFingerprints = new String[0];
|
||||||
// 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.
|
||||||
if (useTls) {
|
if (useTls) {
|
||||||
if (!mPrivateDnsValidationMap.containsKey(netId)) {
|
if (!mPrivateDnsValidationMap.containsKey(netId)) {
|
||||||
mPrivateDnsValidationMap.put(netId, new PrivateDnsValidationStatuses());
|
mPrivateDnsValidationMap.put(netId, new PrivateDnsValidationStatuses());
|
||||||
}
|
}
|
||||||
mPrivateDnsValidationMap.get(netId).updateTrackedDnses(tlsServers, tlsHostname);
|
mPrivateDnsValidationMap.get(netId).updateTrackedDnses(paramsParcel.tlsServers,
|
||||||
|
paramsParcel.tlsName);
|
||||||
} else {
|
} else {
|
||||||
mPrivateDnsValidationMap.remove(netId);
|
mPrivateDnsValidationMap.remove(netId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Slog.d(TAG, String.format("setDnsConfigurationForNetwork(%d, %s, %s, %s, %s, %s)",
|
Slog.d(TAG, String.format("setDnsConfigurationForNetwork(%d, %s, %s, %d, %d, %d, %d, "
|
||||||
netId, Arrays.toString(assignedServers), Arrays.toString(domainStrs),
|
+ "%d, %d, %s, %s)", paramsParcel.netId, Arrays.toString(paramsParcel.servers),
|
||||||
Arrays.toString(params), tlsHostname, Arrays.toString(tlsServers)));
|
Arrays.toString(paramsParcel.domains), paramsParcel.sampleValiditySeconds,
|
||||||
final String[] tlsFingerprints = new String[0];
|
paramsParcel.successThreshold, paramsParcel.minSamples,
|
||||||
|
paramsParcel.maxSamples, paramsParcel.baseTimeoutMsec,
|
||||||
|
paramsParcel.retryCount, paramsParcel.tlsName,
|
||||||
|
Arrays.toString(paramsParcel.tlsServers)));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mDnsResolver.setResolverConfiguration(
|
mDnsResolver.setResolverConfiguration(paramsParcel);
|
||||||
netId, assignedServers, domainStrs, params,
|
|
||||||
tlsHostname, tlsServers, tlsFingerprints);
|
|
||||||
} catch (RemoteException | ServiceSpecificException e) {
|
} catch (RemoteException | ServiceSpecificException e) {
|
||||||
Slog.e(TAG, "Error setting DNS configuration: " + e);
|
Slog.e(TAG, "Error setting DNS configuration: " + e);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ import android.net.NetworkStackClient;
|
|||||||
import android.net.NetworkState;
|
import android.net.NetworkState;
|
||||||
import android.net.NetworkUtils;
|
import android.net.NetworkUtils;
|
||||||
import android.net.ProxyInfo;
|
import android.net.ProxyInfo;
|
||||||
|
import android.net.ResolverParamsParcel;
|
||||||
import android.net.RouteInfo;
|
import android.net.RouteInfo;
|
||||||
import android.net.SocketKeepalive;
|
import android.net.SocketKeepalive;
|
||||||
import android.net.UidRange;
|
import android.net.UidRange;
|
||||||
@@ -273,7 +274,8 @@ public class ConnectivityServiceTest {
|
|||||||
@Mock NetworkStackClient mNetworkStack;
|
@Mock NetworkStackClient mNetworkStack;
|
||||||
@Mock UserManager mUserManager;
|
@Mock UserManager mUserManager;
|
||||||
|
|
||||||
private ArgumentCaptor<String[]> mStringArrayCaptor = ArgumentCaptor.forClass(String[].class);
|
private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor =
|
||||||
|
ArgumentCaptor.forClass(ResolverParamsParcel.class);
|
||||||
|
|
||||||
// This class exists to test bindProcessToNetwork and getBoundNetworkForProcess. These methods
|
// This class exists to test bindProcessToNetwork and getBoundNetworkForProcess. These methods
|
||||||
// do not go through ConnectivityService but talk to netd directly, so they don't automatically
|
// do not go through ConnectivityService but talk to netd directly, so they don't automatically
|
||||||
@@ -4843,16 +4845,13 @@ public class ConnectivityServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testBasicDnsConfigurationPushed() throws Exception {
|
public void testBasicDnsConfigurationPushed() throws Exception {
|
||||||
setPrivateDnsSettings(PRIVATE_DNS_MODE_OPPORTUNISTIC, "ignored.example.com");
|
setPrivateDnsSettings(PRIVATE_DNS_MODE_OPPORTUNISTIC, "ignored.example.com");
|
||||||
ArgumentCaptor<String[]> tlsServers = ArgumentCaptor.forClass(String[].class);
|
|
||||||
|
|
||||||
// Clear any interactions that occur as a result of CS starting up.
|
// Clear any interactions that occur as a result of CS starting up.
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
|
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mMockDnsResolver, never()).setResolverConfiguration(
|
verify(mMockDnsResolver, never()).setResolverConfiguration(any());
|
||||||
anyInt(), eq(EMPTY_STRING_ARRAY), any(), any(), eq(""),
|
|
||||||
eq(EMPTY_STRING_ARRAY), eq(EMPTY_STRING_ARRAY));
|
|
||||||
verifyNoMoreInteractions(mMockDnsResolver);
|
verifyNoMoreInteractions(mMockDnsResolver);
|
||||||
|
|
||||||
final LinkProperties cellLp = new LinkProperties();
|
final LinkProperties cellLp = new LinkProperties();
|
||||||
@@ -4870,35 +4869,33 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent.connect(false);
|
mCellNetworkAgent.connect(false);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
// CS tells netd about the empty DNS config for this network.
|
// CS tells netd about the empty DNS config for this network.
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(any());
|
||||||
anyInt(), eq(EMPTY_STRING_ARRAY), any(), any(), eq(""),
|
|
||||||
eq(EMPTY_STRING_ARRAY), eq(EMPTY_STRING_ARRAY));
|
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
|
|
||||||
cellLp.addDnsServer(InetAddress.getByName("2001:db8::1"));
|
cellLp.addDnsServer(InetAddress.getByName("2001:db8::1"));
|
||||||
mCellNetworkAgent.sendLinkProperties(cellLp);
|
mCellNetworkAgent.sendLinkProperties(cellLp);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
||||||
anyInt(), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(""), tlsServers.capture(), eq(EMPTY_STRING_ARRAY));
|
ResolverParamsParcel resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(1, mStringArrayCaptor.getValue().length);
|
assertEquals(1, resolvrParams.servers.length);
|
||||||
assertTrue(ArrayUtils.contains(mStringArrayCaptor.getValue(), "2001:db8::1"));
|
assertTrue(ArrayUtils.contains(resolvrParams.servers, "2001:db8::1"));
|
||||||
// Opportunistic mode.
|
// Opportunistic mode.
|
||||||
assertTrue(ArrayUtils.contains(tlsServers.getValue(), "2001:db8::1"));
|
assertTrue(ArrayUtils.contains(resolvrParams.tlsServers, "2001:db8::1"));
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
|
|
||||||
cellLp.addDnsServer(InetAddress.getByName("192.0.2.1"));
|
cellLp.addDnsServer(InetAddress.getByName("192.0.2.1"));
|
||||||
mCellNetworkAgent.sendLinkProperties(cellLp);
|
mCellNetworkAgent.sendLinkProperties(cellLp);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
||||||
anyInt(), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(""), tlsServers.capture(), eq(EMPTY_STRING_ARRAY));
|
resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(2, mStringArrayCaptor.getValue().length);
|
assertEquals(2, resolvrParams.servers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(mStringArrayCaptor.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.servers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
// Opportunistic mode.
|
// Opportunistic mode.
|
||||||
assertEquals(2, tlsServers.getValue().length);
|
assertEquals(2, resolvrParams.tlsServers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(tlsServers.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
|
|
||||||
@@ -4911,18 +4908,16 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
||||||
anyInt(), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(TLS_SPECIFIER), eq(TLS_SERVERS), eq(EMPTY_STRING_ARRAY));
|
resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(2, mStringArrayCaptor.getValue().length);
|
assertEquals(2, resolvrParams.servers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(mStringArrayCaptor.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.servers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPrivateDnsSettingsChange() throws Exception {
|
public void testPrivateDnsSettingsChange() throws Exception {
|
||||||
ArgumentCaptor<String[]> tlsServers = ArgumentCaptor.forClass(String[].class);
|
|
||||||
|
|
||||||
// Clear any interactions that occur as a result of CS starting up.
|
// Clear any interactions that occur as a result of CS starting up.
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
|
|
||||||
@@ -4937,9 +4932,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
// CS tells netd about the empty DNS config for this network.
|
// CS tells netd about the empty DNS config for this network.
|
||||||
verify(mMockDnsResolver, never()).setResolverConfiguration(
|
verify(mMockDnsResolver, never()).setResolverConfiguration(any());
|
||||||
anyInt(), eq(EMPTY_STRING_ARRAY), any(), any(), eq(""),
|
|
||||||
eq(EMPTY_STRING_ARRAY), eq(EMPTY_STRING_ARRAY));
|
|
||||||
verifyNoMoreInteractions(mMockDnsResolver);
|
verifyNoMoreInteractions(mMockDnsResolver);
|
||||||
|
|
||||||
final LinkProperties cellLp = new LinkProperties();
|
final LinkProperties cellLp = new LinkProperties();
|
||||||
@@ -4960,14 +4953,14 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent.connect(false);
|
mCellNetworkAgent.connect(false);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
||||||
anyInt(), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(""), tlsServers.capture(), eq(EMPTY_STRING_ARRAY));
|
ResolverParamsParcel resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(2, mStringArrayCaptor.getValue().length);
|
assertEquals(2, resolvrParams.tlsServers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(mStringArrayCaptor.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
// Opportunistic mode.
|
// Opportunistic mode.
|
||||||
assertEquals(2, tlsServers.getValue().length);
|
assertEquals(2, resolvrParams.tlsServers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(tlsServers.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
cellNetworkCallback.expectCallback(CallbackState.AVAILABLE, mCellNetworkAgent);
|
cellNetworkCallback.expectCallback(CallbackState.AVAILABLE, mCellNetworkAgent);
|
||||||
@@ -4982,23 +4975,23 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
setPrivateDnsSettings(PRIVATE_DNS_MODE_OFF, "ignored.example.com");
|
setPrivateDnsSettings(PRIVATE_DNS_MODE_OFF, "ignored.example.com");
|
||||||
verify(mMockDnsResolver, times(1)).setResolverConfiguration(
|
verify(mMockDnsResolver, times(1)).setResolverConfiguration(
|
||||||
anyInt(), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(""), eq(EMPTY_STRING_ARRAY), eq(EMPTY_STRING_ARRAY));
|
resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(2, mStringArrayCaptor.getValue().length);
|
assertEquals(2, resolvrParams.servers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(mStringArrayCaptor.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.servers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
setPrivateDnsSettings(PRIVATE_DNS_MODE_OPPORTUNISTIC, "ignored.example.com");
|
setPrivateDnsSettings(PRIVATE_DNS_MODE_OPPORTUNISTIC, "ignored.example.com");
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
||||||
anyInt(), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(""), tlsServers.capture(), eq(EMPTY_STRING_ARRAY));
|
resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(2, mStringArrayCaptor.getValue().length);
|
assertEquals(2, resolvrParams.servers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(mStringArrayCaptor.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.servers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
assertEquals(2, tlsServers.getValue().length);
|
assertEquals(2, resolvrParams.tlsServers.length);
|
||||||
assertTrue(ArrayUtils.containsAll(tlsServers.getValue(),
|
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||||
reset(mMockDnsResolver);
|
reset(mMockDnsResolver);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
@@ -5850,9 +5843,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent.sendLinkProperties(cellLp);
|
mCellNetworkAgent.sendLinkProperties(cellLp);
|
||||||
networkCallback.expectCallback(CallbackState.LINK_PROPERTIES, mCellNetworkAgent);
|
networkCallback.expectCallback(CallbackState.LINK_PROPERTIES, mCellNetworkAgent);
|
||||||
verify(mMockDnsResolver, times(1)).stopPrefix64Discovery(cellNetId);
|
verify(mMockDnsResolver, times(1)).stopPrefix64Discovery(cellNetId);
|
||||||
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(
|
verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(any());
|
||||||
eq(cellNetId), eq(EMPTY_STRING_ARRAY), any(), any(),
|
|
||||||
eq(""), eq(EMPTY_STRING_ARRAY), eq(EMPTY_STRING_ARRAY));
|
|
||||||
|
|
||||||
verifyNoMoreInteractions(mMockNetd);
|
verifyNoMoreInteractions(mMockNetd);
|
||||||
verifyNoMoreInteractions(mMockDnsResolver);
|
verifyNoMoreInteractions(mMockDnsResolver);
|
||||||
@@ -5895,10 +5886,10 @@ public class ConnectivityServiceTest {
|
|||||||
assertEquals(makeClatLinkProperties(myIpv4), stackedLpsAfterChange.get(0));
|
assertEquals(makeClatLinkProperties(myIpv4), stackedLpsAfterChange.get(0));
|
||||||
|
|
||||||
verify(mMockDnsResolver, times(1)).setResolverConfiguration(
|
verify(mMockDnsResolver, times(1)).setResolverConfiguration(
|
||||||
eq(cellNetId), mStringArrayCaptor.capture(), any(), any(),
|
mResolverParamsParcelCaptor.capture());
|
||||||
eq(""), eq(EMPTY_STRING_ARRAY), eq(EMPTY_STRING_ARRAY));
|
ResolverParamsParcel resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||||
assertEquals(1, mStringArrayCaptor.getValue().length);
|
assertEquals(1, resolvrParams.servers.length);
|
||||||
assertTrue(ArrayUtils.contains(mStringArrayCaptor.getValue(), "8.8.8.8"));
|
assertTrue(ArrayUtils.contains(resolvrParams.servers, "8.8.8.8"));
|
||||||
|
|
||||||
// Add ipv4 address, expect that clatd and prefix discovery are stopped and stacked
|
// Add ipv4 address, expect that clatd and prefix discovery are stopped and stacked
|
||||||
// linkproperties are cleaned up.
|
// linkproperties are cleaned up.
|
||||||
|
|||||||
Reference in New Issue
Block a user