From 877fd475f5b619fbfc273032fd8146e33f4000d0 Mon Sep 17 00:00:00 2001 From: lifr Date: Thu, 25 Mar 2021 01:06:45 +0800 Subject: [PATCH] Add session ID to VpnTransportInfo - This will be visible only to apps with the NETWORK_SETTINGS permissions (signature), and will be redacted for all other callers. - This string is expected to be the same as set by VpnService#setSession, and in general, VpnConfig.session. But it will be a general API that Vpn.java can call when setting the VpnTransportInfo. - This string cannot be updated once the VPN NetworkAgent is connected. Bug: 171872481 Ignore-AOSP-First: needed to prevent automerger race breaking build Test: atest ConnectivityServiceTest atest VpnTransportInfoTest atest NetworkAgentTest Change-Id: I883035262465238c35c5a931d89707f3e84feef8 Merged-In: I883035262465238c35c5a931d89707f3e84feef8 (cherry-picked from ag/14008230) --- tests/cts/net/src/android/net/cts/NetworkAgentTest.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt index ef529f8289..acf7d26e17 100644 --- a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt +++ b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt @@ -547,6 +547,7 @@ class NetworkAgentTest { @Test @IgnoreUpTo(Build.VERSION_CODES.R) fun testSetUnderlyingNetworksAndVpnSpecifier() { + val mySessionId = "MySession12345" val request = NetworkRequest.Builder() .addTransportType(TRANSPORT_TEST) .addTransportType(TRANSPORT_VPN) @@ -560,7 +561,7 @@ class NetworkAgentTest { addTransportType(TRANSPORT_TEST) addTransportType(TRANSPORT_VPN) removeCapability(NET_CAPABILITY_NOT_VPN) - setTransportInfo(VpnTransportInfo(VpnManager.TYPE_VPN_SERVICE)) + setTransportInfo(VpnTransportInfo(VpnManager.TYPE_VPN_SERVICE, mySessionId)) if (SdkLevel.isAtLeastS()) { addCapability(NET_CAPABILITY_NOT_VCN_MANAGED) } @@ -580,6 +581,8 @@ class NetworkAgentTest { assertNotNull(vpnNc) assertEquals(VpnManager.TYPE_VPN_SERVICE, (vpnNc.transportInfo as VpnTransportInfo).type) + // TODO: b/183938194 please fix the issue and enable following check. + // assertEquals(mySessionId, (vpnNc.transportInfo as VpnTransportInfo).sessionId) val testAndVpn = intArrayOf(TRANSPORT_TEST, TRANSPORT_VPN) assertTrue(hasAllTransports(vpnNc, testAndVpn))