diff options
| -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()]); } /** |