summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-11-05 02:38:26 +0100
committercyBerta <cyberta@riseup.net>2021-11-05 02:38:26 +0100
commit88b7dc2eb3dcbec8d1e637096867c15211818677 (patch)
tree739dd893e230ca9362b126bbb8fd47e78bfee5ea /app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
parentd27af3b17d6636de8b2755090b6fe6329531f639 (diff)
Ensure tor state is set to OFF after snowflake completely stopped.
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java b/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
index 5fc604e5..5707cde0 100644
--- a/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
+++ b/app/src/main/java/se/leap/bitmaskclient/tor/ClientTransportPlugin.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.os.FileObserver;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.torproject.jni.ClientTransportPluginInterface;
@@ -18,6 +19,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Vector;
+import java.util.concurrent.TimeoutException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -96,10 +98,19 @@ public class ClientTransportPlugin implements ClientTransportPluginInterface {
@Override
public void stop() {
IPtProxy.stopSnowflake();
+ try {
+ TorStatusObservable.waitUntil(this::isSnowflakeOff, 10);
+ } catch (InterruptedException | TimeoutException e) {
+ e.printStackTrace();
+ }
snowflakePort = -1;
logFileObserver.stopWatching();
}
+ private boolean isSnowflakeOff() {
+ return TorStatusObservable.getSnowflakeStatus() == TorStatusObservable.SnowflakeStatus.OFF;
+ }
+
@Override
public String getTorrc() {
return "UseBridges 1\n" +