From c7b5ac035e31b68d5d29bc4321ccaf62246e4239 Mon Sep 17 00:00:00 2001 From: lucaslin Date: Fri, 17 Sep 2021 19:48:46 +0800 Subject: [PATCH] Set underlying networks into NetworkCapabilities directly The constructor of NetworkAgentInfo will refer to the underlying networks of NetworkCapabilities and set declaredUnderlyingNetworks directly, so there is no need to call setUnderlyingNetworks() to update declaredUnderlyingNetworks. Bug: 191918368 Test: atest FrameworksNetTests:ConnectivityServiceTest Change-Id: Idb5f0232455603567d02591b0cdbab4764155ee9 --- services/core/java/com/android/server/connectivity/Vpn.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 66a2a366d9eb2..c3e240a673e4b 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -1268,6 +1268,9 @@ public class Vpn { capsBuilder.addCapability(NET_CAPABILITY_NOT_METERED); } + capsBuilder.setUnderlyingNetworks((mConfig.underlyingNetworks != null) + ? Arrays.asList(mConfig.underlyingNetworks) : null); + mNetworkCapabilities = capsBuilder.build(); mNetworkAgent = new NetworkAgent(mContext, mLooper, NETWORKTYPE /* logtag */, mNetworkCapabilities, lp, @@ -1288,8 +1291,6 @@ public class Vpn { } finally { Binder.restoreCallingIdentity(token); } - mNetworkAgent.setUnderlyingNetworks((mConfig.underlyingNetworks != null) - ? Arrays.asList(mConfig.underlyingNetworks) : null); updateState(DetailedState.CONNECTED, "agentConnect"); }