diff options
| author | Remi NGUYEN VAN <reminv@google.com> | 2020-05-26 19:16:10 +0900 |
|---|---|---|
| committer | Remi NGUYEN VAN <reminv@google.com> | 2020-05-29 10:22:50 +0900 |
| commit | bc8792c2d013949110566b3e579a049fe5a83093 (patch) | |
| tree | b00e706a878b66f551901e3dc1f027b6f69a22e9 /core/java/android | |
| parent | 09952a8e122f79d6ac6164ef109274720de195b8 (diff) | |
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
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/net/NetworkCapabilities.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 57d5d03a6cf2..0fbffbac5d04 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -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; @@ -787,6 +788,13 @@ public final class NetworkCapabilities implements Parcelable { }; /** + * 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 * for a network to satisfy a request, any listed in the request will satisfy the request. |
