Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d25da5eb authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Gerrit Code Review
Browse files

Merge "Stop using VPNs in getActiveNetworkForUidInternal."

parents 35789309 4decf59c
Loading
Loading
Loading
Loading
+18 −30
Original line number Diff line number Diff line
@@ -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,6 +4818,7 @@ 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);
@@ -4839,7 +4828,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }
        return infoList.toArray(new VpnInfo[infoList.size()]);
    }
    }

    /**
     * @return VPN information for accounting, or null if we can't retrieve all required