Merge "Pass bluetoothUseRandomAddress via RoutingCoordinator constructor" into main
This commit is contained in:
commit
1cdb0a5609
3 changed files with 50 additions and 31 deletions
|
|
@ -40,7 +40,6 @@ import android.util.ArrayMap;
|
|||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.modules.utils.build.SdkLevel;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.net.Inet4Address;
|
||||
|
|
@ -109,31 +108,23 @@ public class PrivateAddressCoordinator {
|
|||
public boolean isFeatureNotChickenedOut(String featureName) {
|
||||
return DeviceConfigUtils.isTetheringFeatureNotChickenedOut(mContext, featureName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether to randomize the tethering prefix for bluetooth as well. Requires T+ because
|
||||
* in S this code is in the platform.
|
||||
*/
|
||||
public boolean shouldBluetoothUseRandomAddress() {
|
||||
// TODO: add a mainline beta flag to enable the new behaviour.
|
||||
return SdkLevel.isAtLeastT() && false;
|
||||
}
|
||||
}
|
||||
|
||||
public PrivateAddressCoordinator(Supplier<Network[]> getAllNetworksSupplier, Context context) {
|
||||
this(getAllNetworksSupplier, new Dependencies(context));
|
||||
public PrivateAddressCoordinator(Supplier<Network[]> getAllNetworksSupplier, Context context,
|
||||
boolean bluetoothTetheringUseRandomAddress) {
|
||||
this(getAllNetworksSupplier, new Dependencies(context), bluetoothTetheringUseRandomAddress);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public PrivateAddressCoordinator(Supplier<Network[]> getAllNetworksSupplier,
|
||||
Dependencies deps) {
|
||||
Dependencies deps, boolean bluetoothTetheringUseRandomAddress) {
|
||||
mDownstreams = new ArrayMap<>();
|
||||
mUpstreamPrefixMap = new ArrayMap<>();
|
||||
mGetAllNetworksSupplier = getAllNetworksSupplier;
|
||||
mDeps = deps;
|
||||
mCachedAddresses = new ArrayMap<AddressKey, LinkAddress>();
|
||||
// Reserved static addresses for BLUETOOTH pre-T and WIFI_P2P.
|
||||
if (!mDeps.shouldBluetoothUseRandomAddress()) {
|
||||
if (!bluetoothTetheringUseRandomAddress) {
|
||||
mCachedAddresses.put(new AddressKey(TETHERING_BLUETOOTH, CONNECTIVITY_SCOPE_GLOBAL),
|
||||
new LinkAddress(LEGACY_BLUETOOTH_IFACE_ADDRESS));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,18 +56,23 @@ public class RoutingCoordinatorService extends IRoutingCoordinator.Stub {
|
|||
@GuardedBy("mPrivateAddressCoordinatorLock")
|
||||
private final PrivateAddressCoordinator mPrivateAddressCoordinator;
|
||||
|
||||
// TODO: Remove bluetoothTetheringUseRandomAddress argument once the beta flag is rolled out
|
||||
public RoutingCoordinatorService(@NonNull INetd netd,
|
||||
@NonNull Supplier<Network[]> getAllNetworksSupplier,
|
||||
@NonNull Context context) {
|
||||
this(netd, getAllNetworksSupplier, new PrivateAddressCoordinator.Dependencies(context));
|
||||
@NonNull Supplier<Network[]> getAllNetworksSupplier,
|
||||
@NonNull Context context,
|
||||
boolean bluetoothTetheringUseRandomAddress) {
|
||||
this(netd, getAllNetworksSupplier, new PrivateAddressCoordinator.Dependencies(context),
|
||||
bluetoothTetheringUseRandomAddress);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public RoutingCoordinatorService(@NonNull INetd netd,
|
||||
@NonNull Supplier<Network[]> getAllNetworksSupplier,
|
||||
@NonNull PrivateAddressCoordinator.Dependencies pacDeps) {
|
||||
@NonNull Supplier<Network[]> getAllNetworksSupplier,
|
||||
@NonNull PrivateAddressCoordinator.Dependencies pacDeps,
|
||||
boolean bluetoothTetheringUseRandomAddress) {
|
||||
mNetd = netd;
|
||||
mPrivateAddressCoordinator = new PrivateAddressCoordinator(getAllNetworksSupplier, pacDeps);
|
||||
mPrivateAddressCoordinator = new PrivateAddressCoordinator(
|
||||
getAllNetworksSupplier, pacDeps, bluetoothTetheringUseRandomAddress);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -38,7 +38,12 @@ class RoutingCoordinatorServiceTest {
|
|||
val mNetd = mock(INetd::class.java)
|
||||
val mGetAllNetworksSupplier = { emptyArray<Network>() }
|
||||
val mContext = mock(Context::class.java)
|
||||
val mService = RoutingCoordinatorService(mNetd, mGetAllNetworksSupplier, mContext)
|
||||
val mService = RoutingCoordinatorService(
|
||||
mNetd,
|
||||
mGetAllNetworksSupplier,
|
||||
mContext,
|
||||
false /* bluetoothTetheringUseRandomAddress */
|
||||
)
|
||||
|
||||
@Test
|
||||
fun testInterfaceForward() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue