From 7d9ce4c9737e7aa31177c24be4c3a81c1acd4cb6 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Wed, 2 Jul 2014 22:59:13 +0100
Subject: [PATCH] Don't assume Tor has bootstrapped if it's already running.

---
 .../src/org/briarproject/plugins/tor/TorPlugin.java    | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java b/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
index 1916d08aff..7ac2f53946 100644
--- a/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
+++ b/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
@@ -138,8 +138,6 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 				controlSocket.close();
 				killZombieProcess();
 				startProcess = true;
-			} else {
-				bootstrapped = true;
 			}
 		} catch(IOException e) {
 			LOG.info("Tor is not running");
@@ -220,6 +218,14 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 		// Register to receive events from the Tor process
 		controlConnection.setEventHandler(this);
 		controlConnection.setEvents(Arrays.asList(EVENTS));
+		// If Tor was already running, find out whether it's bootstrapped
+		if(!startProcess) {
+			String phase = controlConnection.getInfo("status/bootstrap-phase");
+			if(phase != null && phase.contains("PROGRESS=100")) {
+				LOG.info("Tor has already bootstrapped");
+				bootstrapped = true;
+			}
+		}
 		// Register to receive network status events
 		networkStateReceiver = new NetworkStateReceiver();
 		IntentFilter filter = new IntentFilter(CONNECTIVITY_ACTION);
-- 
GitLab