diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorModule.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorModule.kt index b44156e1409ca3801c2e3c8a39d376c389e9b5de..d6072abadb9a6247f81e62a96070a0d54d89753e 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorModule.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorModule.kt @@ -64,7 +64,7 @@ internal class AndroidTorModule { app.getDir("tor", Context.MODE_PRIVATE), ).also { lifecycleManager.registerService(it) } - private val architecture: String + private val architecture: String? get() { for (abi in AndroidTorPlugin.getSupportedArchitectures()) { return when { @@ -76,7 +76,7 @@ internal class AndroidTorModule { } } LOG.info("Tor is not supported on this architecture") - return "" // TODO + return null } } diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java index b23a4d321eafc3e8c3cf3ed4675a9de74f6f1161..4c46231e0fd2c43aca82f842b1bc75ecd0aee70e 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java @@ -29,6 +29,8 @@ import java.util.concurrent.Executor; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import javax.annotation.Nullable; + public class AndroidTorPlugin extends TorPlugin { private static final List<String> LIBRARY_ARCHITECTURES = @@ -52,7 +54,7 @@ public class AndroidTorPlugin extends TorPlugin { CircumventionProvider circumventionProvider, AndroidWakeLockManager wakeLockManager, Backoff backoff, - String architecture, + @Nullable String architecture, File torDirectory) { super(ioExecutor, networkManager, locationUtils, clock, resourceProvider, circumventionProvider, backoff, architecture, torDirectory); this.ctx = ctx; diff --git a/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorModule.kt b/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorModule.kt index f8421ef636326b1ef85ff3e94d4ecc6e9b56f51a..c70b23b72d271b2bc59c610fb455dbd359d6a4b8 100644 --- a/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorModule.kt +++ b/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorModule.kt @@ -59,7 +59,7 @@ internal class JavaTorModule { ).also { lifecycleManager.registerService(it) } } - private val architecture: String + private val architecture: String? get() { if (isLinux()) { if (LOG.isInfoEnabled) { @@ -78,7 +78,7 @@ internal class JavaTorModule { } } LOG.info("Tor is not supported on this architecture") - return "" // TODO + return null } } diff --git a/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java b/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java index 0ecdd95f419b492736bec24651c92a96e28a6339..c9ce0a9e2cc00dfbceeef2ac0bb8b9bf69849d02 100644 --- a/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java +++ b/mailbox-cli/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java @@ -13,6 +13,8 @@ import java.net.URISyntaxException; import java.security.CodeSource; import java.util.concurrent.Executor; +import javax.annotation.Nullable; + public class JavaTorPlugin extends TorPlugin { JavaTorPlugin(Executor ioExecutor, @@ -22,7 +24,7 @@ public class JavaTorPlugin extends TorPlugin { ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, Backoff backoff, - String architecture, + @Nullable String architecture, File torDirectory) { super(ioExecutor, networkManager, locationUtils, clock, resourceProvider, circumventionProvider, backoff, architecture, torDirectory); diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/ServiceException.java b/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/ServiceException.java index adaec28c8a6c88467f98330793ac9e935f6b9b83..fbd05bb6a4323e9c7cbc5f5057b465b0601e2dc3 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/ServiceException.java +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/ServiceException.java @@ -9,6 +9,10 @@ public class ServiceException extends Exception { super(); } + public ServiceException(String msg) { + super(msg); + } + public ServiceException(Throwable cause) { super(cause); } diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/TorPlugin.java b/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/TorPlugin.java index 5adf98ddafa69ffa85ce91326c7bb9d2318840ea..9f73da2e5f9c37927d75a873a763c889b4a34fdb 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/TorPlugin.java +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/TorPlugin.java @@ -70,6 +70,7 @@ abstract class TorPlugin implements Service, EventHandler { private final LocationUtils locationUtils; private final Clock clock; private final Backoff backoff; + @Nullable private final String architecture; private final CircumventionProvider circumventionProvider; private final ResourceProvider resourceProvider; @@ -93,7 +94,7 @@ abstract class TorPlugin implements Service, EventHandler { ResourceProvider resourceProvider, CircumventionProvider circumventionProvider, Backoff backoff, - String architecture, + @Nullable String architecture, File torDirectory) { this.ioExecutor = ioExecutor; this.networkManager = networkManager; @@ -222,6 +223,8 @@ abstract class TorPlugin implements Service, EventHandler { } private void installAssets() throws ServiceException { + if (architecture == null) + throw new ServiceException("Tor not supported on this architecture"); try { // The done file may already exist from a previous installation //noinspection ResultOfMethodCallIgnored