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

Commit bc8792c2 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Allow TRANSPORT_TEST ethernet networks

Ethernet networks using tap interfaces should have TRANSPORT_TEST so
they are not considered by network selection.

Test: atest CaptivePortalApiTest FrameworksNetTests
Bug: 156319532
Change-Id: I0d9477977c88aa055625ab4046577a41e76b05ff
parent 09952a8e
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -679,13 +679,14 @@ public final class NetworkCapabilities implements Parcelable {
     */
    public void restrictCapabilitesForTestNetwork(int creatorUid) {
        final long originalCapabilities = mNetworkCapabilities;
        final long originalTransportTypes = mTransportTypes;
        final NetworkSpecifier originalSpecifier = mNetworkSpecifier;
        final int originalSignalStrength = mSignalStrength;
        final int originalOwnerUid = getOwnerUid();
        final int[] originalAdministratorUids = getAdministratorUids();
        clearAll();
        // Reset the transports to only contain TRANSPORT_TEST.
        mTransportTypes = (1 << TRANSPORT_TEST);
        mTransportTypes = (originalTransportTypes & TEST_NETWORKS_ALLOWED_TRANSPORTS)
                | (1 << TRANSPORT_TEST);
        mNetworkCapabilities = originalCapabilities & TEST_NETWORKS_ALLOWED_CAPABILITIES;
        mNetworkSpecifier = originalSpecifier;
        mSignalStrength = originalSignalStrength;
@@ -786,6 +787,13 @@ public final class NetworkCapabilities implements Parcelable {
        "TEST"
    };

    /**
     * Allowed transports on a test network, in addition to TRANSPORT_TEST.
     */
    private static final int TEST_NETWORKS_ALLOWED_TRANSPORTS = 1 << TRANSPORT_TEST
            // Test ethernet networks can be created with EthernetManager#setIncludeTestInterfaces
            | 1 << TRANSPORT_ETHERNET;

    /**
     * Adds the given transport type to this {@code NetworkCapability} instance.
     * Multiple transports may be applied.  Note that when searching