diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 6cac49d2a90b3..e7a8b132d8507 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -963,10 +963,11 @@ public class Vpn { // VPN either provide a default route (IPv4 or IPv6 or both), or they are a split tunnel // that falls back to the default network, which by definition provides INTERNET (unless // there is no default network, in which case none of this matters in any sense). - // Also, it guarantees that when a VPN applies to an app, the VPN will always be reported - // as the network by getDefaultNetwork and registerDefaultNetworkCallback. This in turn - // protects the invariant that apps calling CM#bindProcessToNetwork(getDefaultNetwork()) - // the same as if they use the default network. + // Also, always setting the INTERNET bit guarantees that when a VPN applies to an app, + // the VPN will always be reported as the network by getDefaultNetwork and callbacks + // registered with registerDefaultNetworkCallback. This in turn protects the invariant + // that an app calling ConnectivityManager#bindProcessToNetwork(getDefaultNetwork()) + // behaves the same as when it uses the default network. mNetworkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); mNetworkInfo.setDetailedState(DetailedState.CONNECTING, null, null);