From 654a05df8abdbb441d6aa02e8d22610a10dea812 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Fri, 6 May 2022 14:56:34 +0100 Subject: [PATCH] Use Windows Tor plugin in briar-headless. --- .../plugin/tor/WindowsTorPluginFactory.java | 2 +- .../briarproject/briar/headless/HeadlessModule.kt | 14 +++++++++++--- .../java/org/briarproject/briar/headless/Main.kt | 14 +++++++++----- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/WindowsTorPluginFactory.java b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/WindowsTorPluginFactory.java index 3ee454f6b..9496a9689 100644 --- a/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/WindowsTorPluginFactory.java +++ b/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/WindowsTorPluginFactory.java @@ -30,7 +30,7 @@ import static org.briarproject.bramble.util.OsUtils.isWindows; @Immutable @NotNullByDefault -class WindowsTorPluginFactory extends TorPluginFactory { +public class WindowsTorPluginFactory extends TorPluginFactory { @Inject WindowsTorPluginFactory(@IoExecutor Executor ioExecutor, 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 e78774011..018045a0a 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 @@ -21,6 +21,7 @@ import org.briarproject.bramble.event.DefaultEventExecutorModule import org.briarproject.bramble.network.JavaNetworkModule import org.briarproject.bramble.plugin.tor.CircumventionModule import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory +import org.briarproject.bramble.plugin.tor.WindowsTorPluginFactory import org.briarproject.bramble.socks.SocksModule import org.briarproject.bramble.system.ClockModule import org.briarproject.bramble.system.DefaultTaskSchedulerModule @@ -29,6 +30,7 @@ import org.briarproject.bramble.system.DesktopSecureRandomModule import org.briarproject.bramble.system.JavaSystemModule import org.briarproject.bramble.util.OsUtils.isLinux import org.briarproject.bramble.util.OsUtils.isMac +import org.briarproject.bramble.util.OsUtils.isWindows import org.briarproject.briar.headless.blogs.HeadlessBlogModule import org.briarproject.briar.headless.contact.HeadlessContactModule import org.briarproject.briar.headless.event.HeadlessEventModule @@ -94,9 +96,15 @@ internal class HeadlessModule(private val appDir: File) { @Provides @Singleton - internal fun providePluginConfig(tor: UnixTorPluginFactory): PluginConfig { - val duplex: List = - if (isLinux() || isMac()) listOf(tor) else emptyList() + internal fun providePluginConfig( + unixTor: UnixTorPluginFactory, + winTor: WindowsTorPluginFactory + ): PluginConfig { + val duplex: List = when { + isLinux() || isMac() -> listOf(unixTor) + isWindows() -> listOf(winTor) + else -> emptyList() + } return object : PluginConfig { override fun getDuplexFactories(): Collection = duplex override fun getSimplexFactories(): Collection = emptyList() diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt index 6c091f71d..410781441 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt @@ -8,6 +8,8 @@ import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.types.int import org.bouncycastle.util.encoders.Base64.toBase64String import org.briarproject.bramble.BrambleCoreEagerSingletons +import org.briarproject.bramble.util.OsUtils.isLinux +import org.briarproject.bramble.util.OsUtils.isMac import org.briarproject.briar.BriarCoreEagerSingletons import org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY import java.io.File @@ -90,11 +92,13 @@ private class Main : CliktCommand( } else if (!file.isDirectory) { throw IOException("Data dir is not a directory: ${file.absolutePath}") } - val perms = HashSet() - perms.add(OWNER_READ) - perms.add(OWNER_WRITE) - perms.add(OWNER_EXECUTE) - setPosixFilePermissions(file.toPath(), perms) + if (isLinux() || isMac()) { + val perms = HashSet() + perms.add(OWNER_READ) + perms.add(OWNER_WRITE) + perms.add(OWNER_EXECUTE) + setPosixFilePermissions(file.toPath(), perms) + } return file }