diff options
| author | 2021-01-13 15:35:20 +0000 | |
|---|---|---|
| committer | 2021-01-13 15:35:20 +0000 | |
| commit | 5ed89a035df54e6d95943753bcd83f15f5f36d74 (patch) | |
| tree | f7b658c8f6a72c952479b917badbf6d9fedee6ec | |
| parent | b57d8d8a265b0383be440fb6483039df61ee024f (diff) | |
| parent | 842030f02cc35588fd65118cff98e7382b17e42b (diff) | |
Merge "Stop using VPNs in getActiveNetworkForUidInternal." am: d25da5eb90 am: be0a5157a4 am: 842030f02c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1529106
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ie3a2d91045fccbf7b03bca9f6d2bc67c598d8d62
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index a330a748d30a..d0a5f33a28e9 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -28,7 +28,6 @@ import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_DNS import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_METRICS_COLLECTION_PERIOD_MILLIS; import static android.net.ConnectivityDiagnosticsManager.DataStallReport.KEY_TCP_PACKET_FAIL_RATE; import static android.net.ConnectivityManager.CONNECTIVITY_ACTION; -import static android.net.ConnectivityManager.NETID_UNSET; import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC; import static android.net.ConnectivityManager.TYPE_ETHERNET; import static android.net.ConnectivityManager.TYPE_NONE; @@ -1444,31 +1443,20 @@ public class ConnectivityService extends IConnectivityManager.Stub } private Network getActiveNetworkForUidInternal(final int uid, boolean ignoreBlocked) { - final int user = UserHandle.getUserId(uid); - int vpnNetId = NETID_UNSET; - synchronized (mVpns) { - final Vpn vpn = mVpns.get(user); - // TODO : now that capabilities contain the UID, the appliesToUid test should - // be removed as the satisfying test below should be enough. - if (vpn != null && vpn.appliesToUid(uid)) vpnNetId = vpn.getNetId(); - } - NetworkAgentInfo nai; - if (vpnNetId != NETID_UNSET) { - nai = getNetworkAgentInfoForNetId(vpnNetId); - if (nai != null) { - final NetworkCapabilities requiredCaps = - createDefaultNetworkCapabilitiesForUid(uid); - if (requiredCaps.satisfiedByNetworkCapabilities(nai.networkCapabilities)) { - return nai.network; - } + final NetworkAgentInfo vpnNai = getVpnForUid(uid); + if (vpnNai != null) { + final NetworkCapabilities requiredCaps = createDefaultNetworkCapabilitiesForUid(uid); + if (requiredCaps.satisfiedByNetworkCapabilities(vpnNai.networkCapabilities)) { + return vpnNai.network; } } - nai = getDefaultNetwork(); - if (nai != null && isNetworkWithCapabilitiesBlocked( - nai.networkCapabilities, uid, ignoreBlocked)) { - nai = null; + + NetworkAgentInfo nai = getDefaultNetwork(); + if (nai == null || isNetworkWithCapabilitiesBlocked(nai.networkCapabilities, uid, + ignoreBlocked)) { + return null; } - return nai != null ? nai.network : null; + return nai.network; } // Public because it's used by mLockdownTracker. @@ -4830,15 +4818,15 @@ public class ConnectivityService extends IConnectivityManager.Stub if (mLockdownEnabled) { return new VpnInfo[0]; } - List<VpnInfo> infoList = new ArrayList<>(); - for (NetworkAgentInfo nai : mNetworkAgentInfos) { - VpnInfo info = createVpnInfo(nai); - if (info != null) { - infoList.add(info); - } + } + List<VpnInfo> infoList = new ArrayList<>(); + for (NetworkAgentInfo nai : mNetworkAgentInfos) { + VpnInfo info = createVpnInfo(nai); + if (info != null) { + infoList.add(info); } - return infoList.toArray(new VpnInfo[infoList.size()]); } + return infoList.toArray(new VpnInfo[infoList.size()]); } /** |