From d4656df384e8b02b361170c5b884326ae70e4664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Thu, 14 Oct 2021 09:03:22 +0200 Subject: [PATCH] Make Tor ports configurable at runtime Instead of using hard-coded values 59050 and 59051 for the Tor socks and control ports, provide them via a TorPorts interface. This makes it possible to pass the ports to a TorPortsImpl in modules. Hence it is possible to configure the Tor port for different types of builds or via command line options in case of briar headless or other clients using the core code. --- .../bramble/plugin/tor/AndroidTorPlugin.java | 4 ++- .../plugin/tor/AndroidTorPluginFactory.java | 6 +++- .../bramble/api/plugin/TorConstants.java | 4 +-- .../briarproject/bramble/plugin/TorPorts.java | 12 ++++++++ .../bramble/plugin/TorPortsImpl.java | 22 ++++++++++++++ .../bramble/plugin/tor/TorPlugin.java | 30 ++++++++++++++++--- .../bramble/socks/SocksModule.java | 7 +++-- bramble-core/src/main/resources/torrc | 6 ---- .../bramble/plugin/tor/JavaTorPlugin.java | 4 ++- .../bramble/plugin/tor/UnixTorPlugin.java | 4 ++- .../plugin/tor/UnixTorPluginFactory.java | 8 +++-- .../bramble/plugin/tor/BridgeTest.java | 9 +++++- .../briarproject/briar/android/AppModule.java | 10 +++++++ .../briar/headless/HeadlessModule.kt | 10 +++++++ .../briar/headless/HeadlessTestModule.kt | 10 +++++++ 15 files changed, 124 insertions(+), 22 deletions(-) create mode 100644 bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPorts.java create mode 100644 bramble-core/src/main/java/org/briarproject/bramble/plugin/TorPortsImpl.java delete mode 100644 bramble-core/src/main/resources/torrc 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 {