summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Lorenzo Colitti <lorenzo@google.com> 2021-01-13 15:35:20 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-01-13 15:35:20 +0000
commit5ed89a035df54e6d95943753bcd83f15f5f36d74 (patch)
treef7b658c8f6a72c952479b917badbf6d9fedee6ec
parentb57d8d8a265b0383be440fb6483039df61ee024f (diff)
parent842030f02cc35588fd65118cff98e7382b17e42b (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.java48
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()]);
}
/**