Use Windows Tor plugin in briar-headless.

This commit is contained in:
akwizgran
2022-05-06 14:56:34 +01:00
parent ffe1876337
commit 654a05df8a
3 changed files with 21 additions and 9 deletions

View File

@@ -30,7 +30,7 @@ import static org.briarproject.bramble.util.OsUtils.isWindows;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
class WindowsTorPluginFactory extends TorPluginFactory { public class WindowsTorPluginFactory extends TorPluginFactory {
@Inject @Inject
WindowsTorPluginFactory(@IoExecutor Executor ioExecutor, WindowsTorPluginFactory(@IoExecutor Executor ioExecutor,

View File

@@ -21,6 +21,7 @@ import org.briarproject.bramble.event.DefaultEventExecutorModule
import org.briarproject.bramble.network.JavaNetworkModule import org.briarproject.bramble.network.JavaNetworkModule
import org.briarproject.bramble.plugin.tor.CircumventionModule import org.briarproject.bramble.plugin.tor.CircumventionModule
import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory
import org.briarproject.bramble.plugin.tor.WindowsTorPluginFactory
import org.briarproject.bramble.socks.SocksModule import org.briarproject.bramble.socks.SocksModule
import org.briarproject.bramble.system.ClockModule import org.briarproject.bramble.system.ClockModule
import org.briarproject.bramble.system.DefaultTaskSchedulerModule 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.system.JavaSystemModule
import org.briarproject.bramble.util.OsUtils.isLinux import org.briarproject.bramble.util.OsUtils.isLinux
import org.briarproject.bramble.util.OsUtils.isMac 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.blogs.HeadlessBlogModule
import org.briarproject.briar.headless.contact.HeadlessContactModule import org.briarproject.briar.headless.contact.HeadlessContactModule
import org.briarproject.briar.headless.event.HeadlessEventModule import org.briarproject.briar.headless.event.HeadlessEventModule
@@ -94,9 +96,15 @@ internal class HeadlessModule(private val appDir: File) {
@Provides @Provides
@Singleton @Singleton
internal fun providePluginConfig(tor: UnixTorPluginFactory): PluginConfig { internal fun providePluginConfig(
val duplex: List<DuplexPluginFactory> = unixTor: UnixTorPluginFactory,
if (isLinux() || isMac()) listOf(tor) else emptyList() winTor: WindowsTorPluginFactory
): PluginConfig {
val duplex: List<DuplexPluginFactory> = when {
isLinux() || isMac() -> listOf(unixTor)
isWindows() -> listOf(winTor)
else -> emptyList()
}
return object : PluginConfig { return object : PluginConfig {
override fun getDuplexFactories(): Collection<DuplexPluginFactory> = duplex override fun getDuplexFactories(): Collection<DuplexPluginFactory> = duplex
override fun getSimplexFactories(): Collection<SimplexPluginFactory> = emptyList() override fun getSimplexFactories(): Collection<SimplexPluginFactory> = emptyList()

View File

@@ -8,6 +8,8 @@ import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.types.int import com.github.ajalt.clikt.parameters.types.int
import org.bouncycastle.util.encoders.Base64.toBase64String import org.bouncycastle.util.encoders.Base64.toBase64String
import org.briarproject.bramble.BrambleCoreEagerSingletons 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.briarproject.briar.BriarCoreEagerSingletons
import org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY import org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY
import java.io.File import java.io.File
@@ -90,11 +92,13 @@ private class Main : CliktCommand(
} else if (!file.isDirectory) { } else if (!file.isDirectory) {
throw IOException("Data dir is not a directory: ${file.absolutePath}") throw IOException("Data dir is not a directory: ${file.absolutePath}")
} }
val perms = HashSet<PosixFilePermission>() if (isLinux() || isMac()) {
perms.add(OWNER_READ) val perms = HashSet<PosixFilePermission>()
perms.add(OWNER_WRITE) perms.add(OWNER_READ)
perms.add(OWNER_EXECUTE) perms.add(OWNER_WRITE)
setPosixFilePermissions(file.toPath(), perms) perms.add(OWNER_EXECUTE)
setPosixFilePermissions(file.toPath(), perms)
}
return file return file
} }