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)
{
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;
}
@ -756,7 +753,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst
runPolipoShellCmd();
if (mHasRoot && mEnableTransparentProxy)
enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
{
disableTransparentProxy();
enableTransparentProxy();
}
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
*/
private boolean enableTransparentProxy (boolean proxyAll, boolean enableTether) throws Exception
private boolean enableTransparentProxy () throws Exception
{
if (mTransProxy == null)
@ -823,7 +823,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
//clear rules first
// mTransProxy.clearTransparentProxyingAll(this);
if(proxyAll)
if(mTransProxyAll)
{
// 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 (enableTether)
if (mTransProxyTethering)
{
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");
fileLog2.setReadable(true);
conn.setConf("Log", "debug file " + fileLog2.getCanonicalPath());
conn.setConf("Log", "debug file " + fileLog2.getCanonicalPath());
}*/
currentStatus = STATUS_CONNECTING;
@ -1462,7 +1461,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{
hmBuiltNodes.remove(node.id);
}
}
@ -1494,9 +1492,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
public void run ()
{
if (mNode.ipAddress != null)
return;
for (int i = 0; i < MAX_ATTEMPTS; i++)
{
if (conn != null)
@ -1525,15 +1520,13 @@ public class TorService extends Service implements TorServiceConstants, TorConst
JSONObject jsonNodeInfo = new org.json.JSONObject(json.toString());
JSONArray jsonRelays = jsonNodeInfo.getJSONArray("relays");
if (jsonRelays.length() > 0)
{
mNode.ipAddress = jsonRelays.getJSONObject(0).getJSONArray("or_addresses").getString(0).split(":")[0];
mNode.country = jsonRelays.getJSONObject(0).getString("country_name");
mNode.organization = jsonRelays.getJSONObject(0).getString("as_name");
}
reader.close();
@ -1912,7 +1905,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (mHasRoot && mEnableTransparentProxy && mTransProxyNetworkRefresh)
{
disableTransparentProxy();
enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
enableTransparentProxy();
}
}
@ -2243,7 +2236,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{
case TRIM_MEMORY_BACKGROUND:
logNotice("trim memory requested: app in the background");
debug("trim memory requested: app in the background");
return;
/**
@ -2255,7 +2248,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
case TRIM_MEMORY_COMPLETE:
logNotice("trim memory requested: cleanup all memory");
debug("trim memory requested: cleanup all memory");
return;
/**
public static final int TRIM_MEMORY_COMPLETE
@ -2265,7 +2258,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
*/
case TRIM_MEMORY_MODERATE:
logNotice("trim memory requested: clean up some memory");
debug("trim memory requested: clean up some memory");
return;
/**
@ -2277,7 +2270,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
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;
/**
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:
logNotice("trim memory requested: memory on device is running low");
debug("trim memory requested: memory on device is running low");
return;
/**
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:
logNotice("trim memory requested: memory on device is moderate");
debug("trim memory requested: memory on device is moderate");
return;
/**
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:
logNotice("trim memory requested: app is not showing UI anymore");
debug("trim memory requested: app is not showing UI anymore");
return;
/**