Populate legacy type in VCN NetworkAgentConfig

This change ensures that the VCN populates the legacy type field,
otherwise ConnectivityService crashes on an unknown legacy type.

Bug: 184304972
Test: atest FrameworksVcnTests
Change-Id: I59dc46dc34d2812a6c8f73c72d208fa735791d74
This commit is contained in:
Benedict Wong
2021-04-01 16:58:27 -07:00
parent 134c10d9c6
commit 7d6b4907cc
2 changed files with 9 additions and 2 deletions

View File

@@ -32,6 +32,7 @@ import static com.android.server.VcnManagementService.VDBG;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.InetAddresses;
import android.net.IpPrefix;
import android.net.IpSecManager;
@@ -1457,6 +1458,10 @@ public class VcnGatewayConnection extends StateMachine {
buildNetworkCapabilities(mConnectionConfig, mUnderlying);
final LinkProperties lp =
buildConnectedLinkProperties(mConnectionConfig, tunnelIface, childConfig);
final NetworkAgentConfig nac =
new NetworkAgentConfig.Builder()
.setLegacyType(ConnectivityManager.TYPE_MOBILE)
.build();
final NetworkAgent agent =
mDeps.newNetworkAgent(
@@ -1465,7 +1470,7 @@ public class VcnGatewayConnection extends StateMachine {
caps,
lp,
Vcn.getNetworkScore(),
new NetworkAgentConfig.Builder().build(),
nac,
mVcnContext.getVcnNetworkProvider(),
() -> {
Slog.d(TAG, "NetworkAgent was unwanted");

View File

@@ -32,6 +32,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -40,6 +41,7 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.NetworkAgent;
import android.net.NetworkCapabilities;
@@ -217,7 +219,7 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection
ncCaptor.capture(),
lpCaptor.capture(),
anyInt(),
any(),
argThat(nac -> nac.getLegacyType() == ConnectivityManager.TYPE_MOBILE),
any(),
any(),
any());