diff --git a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java index 617c70518..a9aff29b0 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java @@ -16,6 +16,7 @@ import org.briarproject.bramble.api.system.AndroidWakeLockManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; +import org.briarproject.bramble.plugin.TorPorts; import org.briarproject.bramble.util.AndroidUtils; import java.io.File; @@ -59,6 +60,7 @@ class AndroidTorPlugin extends TorPlugin { NetworkManager networkManager, LocationUtils locationUtils, SocketFactory torSocketFactory, + TorPorts torPorts, Clock clock, ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, @@ -72,7 +74,7 @@ class AndroidTorPlugin extends TorPlugin { int maxIdleTime, File torDirectory) { super(ioExecutor, wakefulIoExecutor, networkManager, locationUtils, - torSocketFactory, clock, resourceProvider, + torSocketFactory, torPorts, clock, resourceProvider, circumventionProvider, batteryManager, backoff, torRendezvousCrypto, callback, architecture, maxLatency, maxIdleTime, torDirectory); diff --git a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPluginFactory.java b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPluginFactory.java index 1434ea229..a52926d26 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPluginFactory.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPluginFactory.java @@ -20,6 +20,7 @@ import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; import org.briarproject.bramble.api.system.WakefulIoExecutor; +import org.briarproject.bramble.plugin.TorPorts; import org.briarproject.bramble.util.AndroidUtils; import java.io.File; @@ -49,6 +50,7 @@ public class AndroidTorPluginFactory implements DuplexPluginFactory { private final LocationUtils locationUtils; private final EventBus eventBus; private final SocketFactory torSocketFactory; + private final TorPorts torPorts; private final BackoffFactory backoffFactory; private final ResourceProvider resourceProvider; private final CircumventionProvider circumventionProvider; @@ -65,6 +67,7 @@ public class AndroidTorPluginFactory implements DuplexPluginFactory { LocationUtils locationUtils, EventBus eventBus, SocketFactory torSocketFactory, + TorPorts torPorts, BackoffFactory backoffFactory, ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, @@ -79,6 +82,7 @@ public class AndroidTorPluginFactory implements DuplexPluginFactory { this.locationUtils = locationUtils; this.eventBus = eventBus; this.torSocketFactory = torSocketFactory; + this.torPorts = torPorts; this.backoffFactory = backoffFactory; this.resourceProvider = resourceProvider; this.circumventionProvider = circumventionProvider; @@ -130,7 +134,7 @@ public class AndroidTorPluginFactory implements DuplexPluginFactory { TorRendezvousCrypto torRendezvousCrypto = new TorRendezvousCryptoImpl(); AndroidTorPlugin plugin = new AndroidTorPlugin(ioExecutor, wakefulIoExecutor, app, networkManager, locationUtils, - torSocketFactory, clock, resourceProvider, + torSocketFactory, torPorts, clock, resourceProvider, circumventionProvider, batteryManager, wakeLockManager, backoff, torRendezvousCrypto, callback, architecture, MAX_LATENCY, MAX_IDLE_TIME, torDirectory); diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java index b90e1b564..56985ebbe 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java @@ -10,8 +10,8 @@ public interface TorConstants { String PROP_ONION_V2 = "onion"; String PROP_ONION_V3 = "onion3"; - int SOCKS_PORT = 59050; - int CONTROL_PORT = 59051; + int DEFAULT_SOCKS_PORT = 59050; + int DEFAULT_CONTROL_PORT = 59051; int CONNECT_TO_PROXY_TIMEOUT = 5000; // Milliseconds int EXTRA_SOCKET_TIMEOUT = 30000; // Milliseconds diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPorts.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPorts.java new file mode 100644 index 000000000..0dd9eb9ad --- /dev/null +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPorts.java @@ -0,0 +1,12 @@ +package org.briarproject.bramble.plugin; + +/** + * Interface used for injecting the tor ports. + */ +public interface TorPorts { + + int getSocksPort(); + + int getControlPort(); + +} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPortsImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPortsImpl.java new file mode 100644 index 000000000..83a3dc68b --- /dev/null +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPortsImpl.java @@ -0,0 +1,22 @@ +package org.briarproject.bramble.plugin; + +public class TorPortsImpl implements TorPorts { + + private int socksPort; + private int controlPort; + + public TorPortsImpl(int socksPort, int controlPort) { + this.socksPort = socksPort; + this.controlPort = controlPort; + } + + @Override + public int getSocksPort() { + return socksPort; + } + + @Override + public int getControlPort() { + return controlPort; + } +} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java index 4714489d9..128bf67c1 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java @@ -33,7 +33,9 @@ import org.briarproject.bramble.api.settings.event.SettingsUpdatedEvent; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; +import org.briarproject.bramble.plugin.TorPorts; +import java.io.ByteArrayInputStream; import java.io.EOFException; import java.io.File; import java.io.FileInputStream; @@ -74,7 +76,6 @@ import static org.briarproject.bramble.api.plugin.Plugin.State.DISABLED; import static org.briarproject.bramble.api.plugin.Plugin.State.ENABLING; import static org.briarproject.bramble.api.plugin.Plugin.State.INACTIVE; import static org.briarproject.bramble.api.plugin.Plugin.State.STARTING_STOPPING; -import static org.briarproject.bramble.api.plugin.TorConstants.CONTROL_PORT; import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_PREF_PLUGIN_ENABLE; import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_PREF_TOR_MOBILE; import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_PREF_TOR_NETWORK; @@ -123,6 +124,7 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener { private final NetworkManager networkManager; private final LocationUtils locationUtils; private final SocketFactory torSocketFactory; + private final TorPorts torPorts; private final Clock clock; private final BatteryManager batteryManager; private final Backoff backoff; @@ -152,6 +154,7 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener { NetworkManager networkManager, LocationUtils locationUtils, SocketFactory torSocketFactory, + TorPorts torPorts, Clock clock, ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, @@ -168,6 +171,7 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener { this.networkManager = networkManager; this.locationUtils = locationUtils; this.torSocketFactory = torSocketFactory; + this.torPorts = torPorts; this.clock = clock; this.resourceProvider = resourceProvider; this.circumventionProvider = circumventionProvider; @@ -287,7 +291,7 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener { } try { // Open a control connection and authenticate using the cookie file - controlSocket = new Socket("127.0.0.1", CONTROL_PORT); + controlSocket = new Socket("127.0.0.1", torPorts.getControlPort()); controlConnection = new TorControlConnection(controlSocket); controlConnection.authenticate(read(cookieFile)); // Tell Tor to exit when the control connection is closed @@ -390,9 +394,27 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener { return zin; } + private InputStream getTorrc() { + StringBuilder strb = new StringBuilder(); + append(strb, "ControlPort", torPorts.getControlPort()); + append(strb, "CookieAuthentication", 1); + append(strb, "DisableNetwork", 1); + append(strb, "RunAsDaemon", 1); + append(strb, "SafeSocks", 1); + append(strb, "SocksPort", torPorts.getSocksPort()); + + return new ByteArrayInputStream(strb.toString().getBytes()); + } + + private static void append(StringBuilder strb, String name, int value) { + strb.append(name); + strb.append(" "); + strb.append(value); + strb.append("\n"); + } + private InputStream getConfigInputStream() { - ClassLoader cl = getClass().getClassLoader(); - return requireNonNull(cl.getResourceAsStream("torrc")); + return requireNonNull(getTorrc()); } private void listFiles(File f) { diff --git a/bramble-core/src/main/java/org/briarproject/bramble/socks/SocksModule.java b/bramble-core/src/main/java/org/briarproject/bramble/socks/SocksModule.java index be342f011..9706c8e67 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/socks/SocksModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/socks/SocksModule.java @@ -1,5 +1,7 @@ package org.briarproject.bramble.socks; +import org.briarproject.bramble.plugin.TorPorts; + import java.net.InetSocketAddress; import javax.net.SocketFactory; @@ -9,15 +11,14 @@ import dagger.Provides; import static org.briarproject.bramble.api.plugin.TorConstants.CONNECT_TO_PROXY_TIMEOUT; import static org.briarproject.bramble.api.plugin.TorConstants.EXTRA_SOCKET_TIMEOUT; -import static org.briarproject.bramble.api.plugin.TorConstants.SOCKS_PORT; @Module public class SocksModule { @Provides - SocketFactory provideTorSocketFactory() { + SocketFactory provideTorSocketFactory(TorPorts torPorts) { InetSocketAddress proxy = new InetSocketAddress("127.0.0.1", - SOCKS_PORT); + torPorts.getSocksPort()); return new SocksSocketFactory(proxy, CONNECT_TO_PROXY_TIMEOUT, EXTRA_SOCKET_TIMEOUT); } diff --git a/bramble-core/src/main/resources/torrc b/bramble-core/src/main/resources/torrc deleted file mode 100644 index 3d27a7f20..000000000 --- a/bramble-core/src/main/resources/torrc +++ /dev/null @@ -1,6 +0,0 @@ -ControlPort 59051 -CookieAuthentication 1 -DisableNetwork 1 -RunAsDaemon 1 -SafeSocks 1 -SocksPort 59050 diff --git a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/JavaTorPlugin.java b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/JavaTorPlugin.java index 791d01896..1327f3b83 100644 --- a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/JavaTorPlugin.java +++ b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/JavaTorPlugin.java @@ -8,6 +8,7 @@ import org.briarproject.bramble.api.plugin.PluginCallback; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; +import org.briarproject.bramble.plugin.TorPorts; import java.io.File; import java.net.URI; @@ -25,6 +26,7 @@ abstract class JavaTorPlugin extends TorPlugin { NetworkManager networkManager, LocationUtils locationUtils, SocketFactory torSocketFactory, + TorPorts torPorts, Clock clock, ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, @@ -37,7 +39,7 @@ abstract class JavaTorPlugin extends TorPlugin { int maxIdleTime, File torDirectory) { super(ioExecutor, wakefulIoExecutor, networkManager, locationUtils, - torSocketFactory, clock, resourceProvider, + torSocketFactory, torPorts, clock, resourceProvider, circumventionProvider, batteryManager, backoff, torRendezvousCrypto, callback, architecture, maxLatency, maxIdleTime, torDirectory); diff --git a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPlugin.java b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPlugin.java index 568ba51c3..8b36cd2da 100644 --- a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPlugin.java +++ b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPlugin.java @@ -11,6 +11,7 @@ import org.briarproject.bramble.api.plugin.PluginCallback; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; +import org.briarproject.bramble.plugin.TorPorts; import java.io.File; import java.util.concurrent.Executor; @@ -25,6 +26,7 @@ class UnixTorPlugin extends JavaTorPlugin { NetworkManager networkManager, LocationUtils locationUtils, SocketFactory torSocketFactory, + TorPorts torPorts, Clock clock, ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, @@ -37,7 +39,7 @@ class UnixTorPlugin extends JavaTorPlugin { int maxIdleTime, File torDirectory) { super(ioExecutor, wakefulIoExecutor, networkManager, locationUtils, - torSocketFactory, clock, resourceProvider, + torSocketFactory, torPorts, clock, resourceProvider, circumventionProvider, batteryManager, backoff, torRendezvousCrypto, callback, architecture, maxLatency, maxIdleTime, torDirectory); diff --git a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java index c13b7e61b..ceeb596c5 100644 --- a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java +++ b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java @@ -17,6 +17,7 @@ import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; import org.briarproject.bramble.api.system.WakefulIoExecutor; +import org.briarproject.bramble.plugin.TorPorts; import java.io.File; import java.util.concurrent.Executor; @@ -48,6 +49,7 @@ public class UnixTorPluginFactory implements DuplexPluginFactory { private final LocationUtils locationUtils; private final EventBus eventBus; private final SocketFactory torSocketFactory; + private final TorPorts torPorts; private final BackoffFactory backoffFactory; private final ResourceProvider resourceProvider; private final CircumventionProvider circumventionProvider; @@ -62,6 +64,7 @@ public class UnixTorPluginFactory implements DuplexPluginFactory { LocationUtils locationUtils, EventBus eventBus, SocketFactory torSocketFactory, + TorPorts torPorts, BackoffFactory backoffFactory, ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, @@ -74,6 +77,7 @@ public class UnixTorPluginFactory implements DuplexPluginFactory { this.locationUtils = locationUtils; this.eventBus = eventBus; this.torSocketFactory = torSocketFactory; + this.torPorts = torPorts; this.backoffFactory = backoffFactory; this.resourceProvider = resourceProvider; this.circumventionProvider = circumventionProvider; @@ -122,8 +126,8 @@ public class UnixTorPluginFactory implements DuplexPluginFactory { MAX_POLLING_INTERVAL, BACKOFF_BASE); TorRendezvousCrypto torRendezvousCrypto = new TorRendezvousCryptoImpl(); UnixTorPlugin plugin = new UnixTorPlugin(ioExecutor, wakefulIoExecutor, - networkManager, locationUtils, torSocketFactory, clock, - resourceProvider, circumventionProvider, batteryManager, + networkManager, locationUtils, torSocketFactory, torPorts, + clock, resourceProvider, circumventionProvider, batteryManager, backoff, torRendezvousCrypto, callback, architecture, MAX_LATENCY, MAX_IDLE_TIME, torDirectory); eventBus.addListener(plugin); diff --git a/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java b/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java index 99ebef925..4ce0766cd 100644 --- a/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java +++ b/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java @@ -11,6 +11,8 @@ import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.system.LocationUtils; import org.briarproject.bramble.api.system.ResourceProvider; import org.briarproject.bramble.api.system.WakefulIoExecutor; +import org.briarproject.bramble.plugin.TorPorts; +import org.briarproject.bramble.plugin.TorPortsImpl; import org.briarproject.bramble.test.BrambleJavaIntegrationTestComponent; import org.briarproject.bramble.test.BrambleTestCase; import org.briarproject.bramble.test.DaggerBrambleJavaIntegrationTestComponent; @@ -36,6 +38,8 @@ import static java.util.Collections.singletonList; import static java.util.concurrent.TimeUnit.SECONDS; import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE; +import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT; +import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT; import static org.briarproject.bramble.test.TestUtils.deleteTestDirectory; import static org.briarproject.bramble.test.TestUtils.getTestDirectory; import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled; @@ -115,6 +119,9 @@ public class BridgeTest extends BrambleTestCase { LocationUtils locationUtils = () -> "US"; SocketFactory torSocketFactory = SocketFactory.getDefault(); + TorPorts torPorts = + new TorPortsImpl(DEFAULT_SOCKS_PORT, DEFAULT_CONTROL_PORT); + CircumventionProvider bridgeProvider = new CircumventionProvider() { @Override public boolean isTorProbablyBlocked(String countryCode) { @@ -138,7 +145,7 @@ public class BridgeTest extends BrambleTestCase { }; factory = new UnixTorPluginFactory(ioExecutor, wakefulIoExecutor, networkManager, locationUtils, eventBus, torSocketFactory, - backoffFactory, resourceProvider, bridgeProvider, + torPorts, backoffFactory, resourceProvider, bridgeProvider, batteryManager, clock, torDir); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java index 2b059fa50..164bf87a3 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java @@ -23,6 +23,8 @@ import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory; import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory; import org.briarproject.bramble.api.reporting.DevConfig; +import org.briarproject.bramble.plugin.TorPorts; +import org.briarproject.bramble.plugin.TorPortsImpl; import org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPluginFactory; import org.briarproject.bramble.plugin.file.AndroidRemovableDrivePluginFactory; import org.briarproject.bramble.plugin.tcp.AndroidLanTcpPluginFactory; @@ -74,6 +76,8 @@ import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; +import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT; +import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT; import static org.briarproject.bramble.api.reporting.ReportingConstants.DEV_ONION_ADDRESS; import static org.briarproject.bramble.api.reporting.ReportingConstants.DEV_PUBLIC_KEY_HEX; import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD; @@ -148,6 +152,12 @@ public class AppModule { return new AndroidDatabaseConfig(dbDir, keyDir, keyStrengthener); } + @Provides + @Singleton + TorPorts provideTorPorts() { + return new TorPortsImpl(DEFAULT_SOCKS_PORT, DEFAULT_CONTROL_PORT); + } + @Provides @Singleton @TorDirectory diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt index e78797bb2..0f285faad 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt @@ -7,6 +7,8 @@ import org.briarproject.bramble.account.AccountModule import org.briarproject.bramble.api.FeatureFlags import org.briarproject.bramble.api.db.DatabaseConfig import org.briarproject.bramble.api.plugin.PluginConfig +import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT +import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT import org.briarproject.bramble.api.plugin.TorDirectory import org.briarproject.bramble.api.plugin.TransportId import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory @@ -14,6 +16,8 @@ import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory import org.briarproject.bramble.battery.DefaultBatteryManagerModule import org.briarproject.bramble.event.DefaultEventExecutorModule import org.briarproject.bramble.network.JavaNetworkModule +import org.briarproject.bramble.plugin.TorPorts +import org.briarproject.bramble.plugin.TorPortsImpl import org.briarproject.bramble.plugin.tor.CircumventionModule import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory import org.briarproject.bramble.socks.SocksModule @@ -67,6 +71,12 @@ internal class HeadlessModule(private val appDir: File) { return HeadlessDatabaseConfig(dbDir, keyDir) } + @Provides + @Singleton + fun provideTorPorts(): TorPorts { + return TorPortsImpl(DEFAULT_SOCKS_PORT, DEFAULT_CONTROL_PORT) + } + @Provides @TorDirectory internal fun provideTorDirectory(): File { diff --git a/briar-headless/src/test/java/org/briarproject/briar/headless/HeadlessTestModule.kt b/briar-headless/src/test/java/org/briarproject/briar/headless/HeadlessTestModule.kt index 67171a977..a2be02579 100644 --- a/briar-headless/src/test/java/org/briarproject/briar/headless/HeadlessTestModule.kt +++ b/briar-headless/src/test/java/org/briarproject/briar/headless/HeadlessTestModule.kt @@ -6,11 +6,15 @@ import dagger.Provides import org.briarproject.bramble.account.AccountModule import org.briarproject.bramble.api.db.DatabaseConfig import org.briarproject.bramble.api.plugin.PluginConfig +import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT +import org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT import org.briarproject.bramble.api.plugin.TransportId import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory import org.briarproject.bramble.event.DefaultEventExecutorModule import org.briarproject.bramble.network.JavaNetworkModule +import org.briarproject.bramble.plugin.TorPorts +import org.briarproject.bramble.plugin.TorPortsImpl import org.briarproject.bramble.plugin.tor.CircumventionModule import org.briarproject.bramble.socks.SocksModule import org.briarproject.bramble.system.ClockModule @@ -64,6 +68,12 @@ internal class HeadlessTestModule(private val appDir: File) { return HeadlessDatabaseConfig(dbDir, keyDir) } + @Provides + @Singleton + fun provideTorPorts(): TorPorts { + return TorPortsImpl(DEFAULT_SOCKS_PORT, DEFAULT_CONTROL_PORT) + } + @Provides @Singleton internal fun providePluginConfig(): PluginConfig {