From 786202476b891bb98fc2d1f51614ab1e9f615d26 Mon Sep 17 00:00:00 2001 From: lucaslin Date: Tue, 12 Apr 2022 17:04:18 +0800 Subject: [PATCH] Add NET_CAPABILITY_NOT_VPN when requesting test network Add NET_CAPABILITY_NOT_VPN can prevent Ikev2VpnNetworkCallback receiving onAvailable when VPN is connected. Otherwise, the VPN network will be misused as underlying network to establish VPN connection again, which is a wrong behavior. Bug: 228574221 Test: atest CtsNetTestCases:Ikev2VpnTest Change-Id: Iac85caa0f5bd37a7e79c14fe796737d7b36fa4bd --- services/core/java/com/android/server/connectivity/Vpn.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 35217dba7c286..33440a3591f61 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -20,6 +20,7 @@ import static android.Manifest.permission.BIND_VPN_SERVICE; import static android.Manifest.permission.CONTROL_VPN; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; +import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN; import static android.net.RouteInfo.RTN_THROW; import static android.net.RouteInfo.RTN_UNREACHABLE; import static android.net.VpnManager.NOTIFICATION_CHANNEL_VPN; @@ -2542,6 +2543,7 @@ public class Vpn { req = new NetworkRequest.Builder() .clearCapabilities() .addTransportType(NetworkCapabilities.TRANSPORT_TEST) + .addCapability(NET_CAPABILITY_NOT_VPN) .build(); } else { // Basically, the request here is referring to the default request which is defined