From 614891d0d308b6fadd57c7ab7b9d8ffb736db699 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Wed, 30 May 2018 16:44:47 +0900 Subject: [PATCH] Don't complain if a VPN changes capabilities. VPNs are not driven by NetworkRequests, so there's no risk of a capability change on a VPN causing a connect/teardown loop. Bug: 80439912 Test: builds, boots Change-Id: Ic4c489ccc9fb97551d1ef440766f6cf6f99522db --- .../core/java/com/android/server/ConnectivityService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index c3f504f6c6..2d2c4cd687 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4868,7 +4868,12 @@ public class ConnectivityService extends IConnectivityManager.Stub */ private NetworkCapabilities mixInCapabilities(NetworkAgentInfo nai, NetworkCapabilities nc) { // Once a NetworkAgent is connected, complain if some immutable capabilities are removed. + // Don't complain for VPNs since they're not driven by requests and there is no risk of + // causing a connect/teardown loop. + // TODO: remove this altogether and make it the responsibility of the NetworkFactories to + // avoid connect/teardown loops. if (nai.everConnected && + !nai.isVPN() && !nai.networkCapabilities.satisfiedByImmutableNetworkCapabilities(nc)) { // TODO: consider not complaining when a network agent degrades its capabilities if this // does not cause any request (that is not a listen) currently matching that agent to