simplify process reconnect and transproxy setup

- on reconnect to service, don't require call to getInfo before STATUS_ON is set
- transproxy should always delete/flush before adding in order to make sure old rules are cleared
This commit is contained in:
Nathan Freitas 2014-08-26 22:41:20 -04:00
parent 390b89ed57
commit dafd295b97
1 changed files with 18 additions and 25 deletions

View File

@ -185,11 +185,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (mLastProcessId != -1 && conn != null) if (mLastProcessId != -1 && conn != null)
{ {
sendCallbackLogMessage (getString(R.string.found_existing_tor_process)); sendCallbackLogMessage (getString(R.string.found_existing_tor_process));
String msg = conn.getInfo("status/circuit-established");
sendCallbackLogMessage(msg);
currentStatus = STATUS_ON; currentStatus = STATUS_ON;
return true; return true;
} }
@ -756,7 +753,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst
runPolipoShellCmd(); runPolipoShellCmd();
if (mHasRoot && mEnableTransparentProxy) if (mHasRoot && mEnableTransparentProxy)
enableTransparentProxy(mTransProxyAll, mTransProxyTethering); {
disableTransparentProxy();
enableTransparentProxy();
}
getHiddenServiceHostname (); getHiddenServiceHostname ();
@ -789,7 +789,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
* *
* the idea is that if Tor is off then transproxy is off * the idea is that if Tor is off then transproxy is off
*/ */
private boolean enableTransparentProxy (boolean proxyAll, boolean enableTether) throws Exception private boolean enableTransparentProxy () throws Exception
{ {
if (mTransProxy == null) if (mTransProxy == null)
@ -823,7 +823,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
//clear rules first //clear rules first
// mTransProxy.clearTransparentProxyingAll(this); // mTransProxy.clearTransparentProxyingAll(this);
if(proxyAll) if(mTransProxyAll)
{ {
// showToolbarNotification(getString(R.string.setting_up_full_transparent_proxying_), TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor); // showToolbarNotification(getString(R.string.setting_up_full_transparent_proxying_), TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
@ -849,7 +849,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (code == 0) if (code == 0)
{ {
if (enableTether) if (mTransProxyTethering)
{ {
showToolbarNotification(getString(R.string.transproxy_enabled_for_tethering_), TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor); showToolbarNotification(getString(R.string.transproxy_enabled_for_tethering_), TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
@ -1054,8 +1054,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{ {
File fileLog2 = new File(getFilesDir(),"orbot-tor-log.txt"); File fileLog2 = new File(getFilesDir(),"orbot-tor-log.txt");
fileLog2.setReadable(true); fileLog2.setReadable(true);
conn.setConf("Log", "debug file " + fileLog2.getCanonicalPath()); conn.setConf("Log", "debug file " + fileLog2.getCanonicalPath());
}*/ }*/
currentStatus = STATUS_CONNECTING; currentStatus = STATUS_CONNECTING;
@ -1462,7 +1461,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{ {
hmBuiltNodes.remove(node.id); hmBuiltNodes.remove(node.id);
} }
} }
@ -1494,9 +1492,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
public void run () public void run ()
{ {
if (mNode.ipAddress != null)
return;
for (int i = 0; i < MAX_ATTEMPTS; i++) for (int i = 0; i < MAX_ATTEMPTS; i++)
{ {
if (conn != null) if (conn != null)
@ -1525,15 +1520,13 @@ public class TorService extends Service implements TorServiceConstants, TorConst
JSONObject jsonNodeInfo = new org.json.JSONObject(json.toString()); JSONObject jsonNodeInfo = new org.json.JSONObject(json.toString());
JSONArray jsonRelays = jsonNodeInfo.getJSONArray("relays"); JSONArray jsonRelays = jsonNodeInfo.getJSONArray("relays");
if (jsonRelays.length() > 0) if (jsonRelays.length() > 0)
{ {
mNode.ipAddress = jsonRelays.getJSONObject(0).getJSONArray("or_addresses").getString(0).split(":")[0]; mNode.ipAddress = jsonRelays.getJSONObject(0).getJSONArray("or_addresses").getString(0).split(":")[0];
mNode.country = jsonRelays.getJSONObject(0).getString("country_name"); mNode.country = jsonRelays.getJSONObject(0).getString("country_name");
mNode.organization = jsonRelays.getJSONObject(0).getString("as_name"); mNode.organization = jsonRelays.getJSONObject(0).getString("as_name");
} }
reader.close(); reader.close();
@ -1912,7 +1905,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (mHasRoot && mEnableTransparentProxy && mTransProxyNetworkRefresh) if (mHasRoot && mEnableTransparentProxy && mTransProxyNetworkRefresh)
{ {
disableTransparentProxy(); disableTransparentProxy();
enableTransparentProxy(mTransProxyAll, mTransProxyTethering); enableTransparentProxy();
} }
} }
@ -2243,7 +2236,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{ {
case TRIM_MEMORY_BACKGROUND: case TRIM_MEMORY_BACKGROUND:
logNotice("trim memory requested: app in the background"); debug("trim memory requested: app in the background");
return; return;
/** /**
@ -2255,7 +2248,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
case TRIM_MEMORY_COMPLETE: case TRIM_MEMORY_COMPLETE:
logNotice("trim memory requested: cleanup all memory"); debug("trim memory requested: cleanup all memory");
return; return;
/** /**
public static final int TRIM_MEMORY_COMPLETE public static final int TRIM_MEMORY_COMPLETE
@ -2265,7 +2258,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
*/ */
case TRIM_MEMORY_MODERATE: case TRIM_MEMORY_MODERATE:
logNotice("trim memory requested: clean up some memory"); debug("trim memory requested: clean up some memory");
return; return;
/** /**
@ -2277,7 +2270,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
case TRIM_MEMORY_RUNNING_CRITICAL: case TRIM_MEMORY_RUNNING_CRITICAL:
logNotice("trim memory requested: memory on device is very low and critical"); debug("trim memory requested: memory on device is very low and critical");
return; return;
/** /**
public static final int TRIM_MEMORY_RUNNING_CRITICAL public static final int TRIM_MEMORY_RUNNING_CRITICAL
@ -2288,7 +2281,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
case TRIM_MEMORY_RUNNING_LOW: case TRIM_MEMORY_RUNNING_LOW:
logNotice("trim memory requested: memory on device is running low"); debug("trim memory requested: memory on device is running low");
return; return;
/** /**
public static final int TRIM_MEMORY_RUNNING_LOW public static final int TRIM_MEMORY_RUNNING_LOW
@ -2298,7 +2291,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
*/ */
case TRIM_MEMORY_RUNNING_MODERATE: case TRIM_MEMORY_RUNNING_MODERATE:
logNotice("trim memory requested: memory on device is moderate"); debug("trim memory requested: memory on device is moderate");
return; return;
/** /**
public static final int TRIM_MEMORY_RUNNING_MODERATE public static final int TRIM_MEMORY_RUNNING_MODERATE
@ -2308,7 +2301,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
*/ */
case TRIM_MEMORY_UI_HIDDEN: case TRIM_MEMORY_UI_HIDDEN:
logNotice("trim memory requested: app is not showing UI anymore"); debug("trim memory requested: app is not showing UI anymore");
return; return;
/** /**