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

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

Merge "Stop depending on the ConnectivityService default request."

parents 98f0c309 ed3168e9
Loading
Loading
Loading
Loading
+1 −4
Original line number Original line Diff line number Diff line
@@ -247,7 +247,6 @@ public class NetworkMonitor extends StateMachine {
    private final TelephonyManager mTelephonyManager;
    private final TelephonyManager mTelephonyManager;
    private final WifiManager mWifiManager;
    private final WifiManager mWifiManager;
    private final ConnectivityManager mCm;
    private final ConnectivityManager mCm;
    private final NetworkRequest mDefaultRequest;
    private final IpConnectivityLog mMetricsLog;
    private final IpConnectivityLog mMetricsLog;
    private final Dependencies mDependencies;
    private final Dependencies mDependencies;


@@ -336,7 +335,6 @@ public class NetworkMonitor extends StateMachine {
        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        mDefaultRequest = defaultRequest;


        // CHECKSTYLE:OFF IndentationCheck
        // CHECKSTYLE:OFF IndentationCheck
        addState(mDefaultState);
        addState(mDefaultState);
@@ -486,8 +484,7 @@ public class NetworkMonitor extends StateMachine {
    }
    }


    private boolean isValidationRequired() {
    private boolean isValidationRequired() {
        return NetworkMonitorUtils.isValidationRequired(
        return NetworkMonitorUtils.isValidationRequired(mNetworkCapabilities);
                mDefaultRequest.networkCapabilities, mNetworkCapabilities);
    }
    }




+1 −2
Original line number Original line Diff line number Diff line
@@ -2640,8 +2640,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
    }
    }


    private boolean networkRequiresValidation(NetworkAgentInfo nai) {
    private boolean networkRequiresValidation(NetworkAgentInfo nai) {
        return isValidationRequired(
        return isValidationRequired(nai.networkCapabilities);
                mDefaultRequest.networkCapabilities, nai.networkCapabilities);
    }
    }


    private void handleFreshlyValidatedNetwork(NetworkAgentInfo nai) {
    private void handleFreshlyValidatedNetwork(NetworkAgentInfo nai) {
+11 −3
Original line number Original line Diff line number Diff line
@@ -16,6 +16,11 @@


package android.net.shared;
package android.net.shared;


import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN;
import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;

import android.content.Context;
import android.content.Context;
import android.net.NetworkCapabilities;
import android.net.NetworkCapabilities;
import android.provider.Settings;
import android.provider.Settings;
@@ -58,9 +63,12 @@ public class NetworkMonitorUtils {
     * @param dfltNetCap Default requested network capabilities.
     * @param dfltNetCap Default requested network capabilities.
     * @param nc Network capabilities of the network to test.
     * @param nc Network capabilities of the network to test.
     */
     */
    public static boolean isValidationRequired(
    public static boolean isValidationRequired(NetworkCapabilities nc) {
            NetworkCapabilities dfltNetCap, NetworkCapabilities nc) {
        // TODO: Consider requiring validation for DUN networks.
        // TODO: Consider requiring validation for DUN networks.
        return dfltNetCap.satisfiedByNetworkCapabilities(nc);
        return nc != null
                && nc.hasCapability(NET_CAPABILITY_INTERNET)
                && nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)
                && nc.hasCapability(NET_CAPABILITY_TRUSTED)
                && nc.hasCapability(NET_CAPABILITY_NOT_VPN);
    }
    }
}
}
+7 −2
Original line number Original line Diff line number Diff line
@@ -1508,6 +1508,12 @@ public class ConnectivityServiceTest {
        verifyActiveNetwork(TRANSPORT_WIFI);
        verifyActiveNetwork(TRANSPORT_WIFI);
    }
    }


    @Test
    public void testRequiresValidation() {
        assertTrue(NetworkMonitorUtils.isValidationRequired(
                mCm.getDefaultRequest().networkCapabilities));
    }

    enum CallbackState {
    enum CallbackState {
        NONE,
        NONE,
        AVAILABLE,
        AVAILABLE,
@@ -4404,8 +4410,7 @@ public class ConnectivityServiceTest {
        mMockVpn.setUids(ranges);
        mMockVpn.setUids(ranges);
        // VPN networks do not satisfy the default request and are automatically validated
        // VPN networks do not satisfy the default request and are automatically validated
        // by NetworkMonitor
        // by NetworkMonitor
        assertFalse(NetworkMonitorUtils.isValidationRequired(
        assertFalse(NetworkMonitorUtils.isValidationRequired(vpnNetworkAgent.mNetworkCapabilities));
                mCm.getDefaultRequest().networkCapabilities, vpnNetworkAgent.mNetworkCapabilities));
        vpnNetworkAgent.setNetworkValid();
        vpnNetworkAgent.setNetworkValid();


        vpnNetworkAgent.connect(false);
        vpnNetworkAgent.connect(false);