Loading services/core/java/com/android/server/vcn/VcnGatewayConnection.java +1 −1 Original line number Diff line number Diff line Loading @@ -1889,7 +1889,7 @@ public class VcnGatewayConnection extends StateMachine { mIpSecManager.applyTunnelModeTransform( tunnelIface, IpSecManager.DIRECTION_FWD, transform); } } catch (IOException e) { } catch (IOException | IllegalArgumentException e) { logInfo("Transform application failed for network " + token, e); sessionLost(token, e); } Loading tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectedStateTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ 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.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; Loading Loading @@ -345,6 +346,33 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection verify(mConnMgr).reportNetworkConnectivity(eq(mNetworkAgent.getNetwork()), eq(false)); } @Test public void testMigrationHandleFailure() throws Exception { triggerChildOpened(); mTestLooper.dispatchAll(); assertEquals(mIkeConnectionInfo, mGatewayConnection.getIkeConnectionInfo()); mGatewayConnection .getUnderlyingNetworkControllerCallback() .onSelectedUnderlyingNetworkChanged(TEST_UNDERLYING_NETWORK_RECORD_2); final IkeSessionConnectionInfo newIkeConnectionInfo = new IkeSessionConnectionInfo( TEST_ADDR_V4, TEST_ADDR_V4_2, TEST_UNDERLYING_NETWORK_RECORD_2.network); getIkeSessionCallback().onIkeSessionConnectionInfoChanged(newIkeConnectionInfo); getChildSessionCallback() .onIpSecTransformsMigrated(makeDummyIpSecTransform(), makeDummyIpSecTransform()); doThrow(new IllegalArgumentException("testMigrationHandleFailure")) .when(mIpSecSvc) .setNetworkForTunnelInterface(anyInt(), any(), any()); mTestLooper.dispatchAll(); assertEquals(mGatewayConnection.mDisconnectingState, mGatewayConnection.getCurrentState()); verify(mIkeSession).close(); } private void triggerChildOpened() { triggerChildOpened(Collections.singletonList(TEST_INTERNAL_ADDR), TEST_DNS_ADDR); } Loading Loading
services/core/java/com/android/server/vcn/VcnGatewayConnection.java +1 −1 Original line number Diff line number Diff line Loading @@ -1889,7 +1889,7 @@ public class VcnGatewayConnection extends StateMachine { mIpSecManager.applyTunnelModeTransform( tunnelIface, IpSecManager.DIRECTION_FWD, transform); } } catch (IOException e) { } catch (IOException | IllegalArgumentException e) { logInfo("Transform application failed for network " + token, e); sessionLost(token, e); } Loading
tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectedStateTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ 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.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; Loading Loading @@ -345,6 +346,33 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection verify(mConnMgr).reportNetworkConnectivity(eq(mNetworkAgent.getNetwork()), eq(false)); } @Test public void testMigrationHandleFailure() throws Exception { triggerChildOpened(); mTestLooper.dispatchAll(); assertEquals(mIkeConnectionInfo, mGatewayConnection.getIkeConnectionInfo()); mGatewayConnection .getUnderlyingNetworkControllerCallback() .onSelectedUnderlyingNetworkChanged(TEST_UNDERLYING_NETWORK_RECORD_2); final IkeSessionConnectionInfo newIkeConnectionInfo = new IkeSessionConnectionInfo( TEST_ADDR_V4, TEST_ADDR_V4_2, TEST_UNDERLYING_NETWORK_RECORD_2.network); getIkeSessionCallback().onIkeSessionConnectionInfoChanged(newIkeConnectionInfo); getChildSessionCallback() .onIpSecTransformsMigrated(makeDummyIpSecTransform(), makeDummyIpSecTransform()); doThrow(new IllegalArgumentException("testMigrationHandleFailure")) .when(mIpSecSvc) .setNetworkForTunnelInterface(anyInt(), any(), any()); mTestLooper.dispatchAll(); assertEquals(mGatewayConnection.mDisconnectingState, mGatewayConnection.getCurrentState()); verify(mIkeSession).close(); } private void triggerChildOpened() { triggerChildOpened(Collections.singletonList(TEST_INTERNAL_ADDR), TEST_DNS_ADDR); } Loading