multiple fixes for status check and new transproxy calls
- update to the new transproxy selective calls - improve status resume/check code
This commit is contained in:
parent
6955c44e36
commit
3e58ee9b75
|
@ -52,6 +52,7 @@ import org.torproject.android.R;
|
||||||
import org.torproject.android.TorConstants;
|
import org.torproject.android.TorConstants;
|
||||||
import org.torproject.android.Utils;
|
import org.torproject.android.Utils;
|
||||||
import org.torproject.android.settings.AppManager;
|
import org.torproject.android.settings.AppManager;
|
||||||
|
import org.torproject.android.settings.TorifiedApp;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
@ -172,15 +173,14 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
|
|
||||||
mLastProcessId = initControlConnection(1);
|
mLastProcessId = initControlConnection(1);
|
||||||
|
|
||||||
if (mLastProcessId != -1)
|
if (mLastProcessId != -1 && conn != null)
|
||||||
{
|
{
|
||||||
sendCallbackLogMessage (getString(R.string.found_existing_tor_process));
|
sendCallbackLogMessage (getString(R.string.found_existing_tor_process));
|
||||||
|
|
||||||
String state = conn.getInfo("dormant");
|
String msg = conn.getInfo("status/circuit-established");
|
||||||
if (state != null && Integer.parseInt(state) == 0)
|
sendCallbackLogMessage(msg);
|
||||||
|
|
||||||
currentStatus = STATUS_ON;
|
currentStatus = STATUS_ON;
|
||||||
else
|
|
||||||
currentStatus = STATUS_CONNECTING;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -799,19 +799,26 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
debug ("Transparent Proxying: clearing existing rules...");
|
debug ("Transparent Proxying: clearing existing rules...");
|
||||||
|
|
||||||
//clear rules first
|
//clear rules first
|
||||||
mTransProxy.clearTransparentProxyingAll(this);
|
// mTransProxy.clearTransparentProxyingAll(this);
|
||||||
|
|
||||||
if(proxyAll)
|
if(proxyAll)
|
||||||
{
|
{
|
||||||
// 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);
|
||||||
|
|
||||||
code = mTransProxy.setTransparentProxyingAll(this);
|
//clear existing rules
|
||||||
|
//code = mTransProxy.setTransparentProxyingAll(this, false);
|
||||||
|
|
||||||
|
code = mTransProxy.setTransparentProxyingAll(this, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//showToolbarNotification(getString(R.string.setting_up_app_based_transparent_proxying_), TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
|
//showToolbarNotification(getString(R.string.setting_up_app_based_transparent_proxying_), TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
|
||||||
|
ArrayList<TorifiedApp> apps = AppManager.getApps(this, TorServiceUtils.getSharedPrefs(getApplicationContext()));
|
||||||
|
|
||||||
code = mTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this, TorServiceUtils.getSharedPrefs(getApplicationContext())));
|
//clear exiting rules
|
||||||
|
//code = mTransProxy.setTransparentProxyingByApp(this,apps, false);
|
||||||
|
|
||||||
|
code = mTransProxy.setTransparentProxyingByApp(this,apps, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -856,7 +863,13 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
if (mTransProxy == null)
|
if (mTransProxy == null)
|
||||||
mTransProxy = new TorTransProxy(this, fileXtables);
|
mTransProxy = new TorTransProxy(this, fileXtables);
|
||||||
|
|
||||||
mTransProxy.clearTransparentProxyingAll(this);
|
if (mTransProxyAll)
|
||||||
|
mTransProxy.setTransparentProxyingAll(this, false);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ArrayList<TorifiedApp> apps = AppManager.getApps(this, TorServiceUtils.getSharedPrefs(getApplicationContext()));
|
||||||
|
mTransProxy.setTransparentProxyingByApp(this, apps, false);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -986,24 +999,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int controlPort = -1;
|
int controlPort = -1;
|
||||||
File fileCookie = new File(appCacheHome, TOR_CONTROL_COOKIE);
|
|
||||||
|
|
||||||
if (conn != null)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (fileCookie.exists())
|
|
||||||
{
|
|
||||||
byte[] cookie = new byte[(int)fileCookie.length()];
|
|
||||||
DataInputStream fis = new DataInputStream(new FileInputStream(fileCookie));
|
|
||||||
fis.read(cookie);
|
|
||||||
fis.close();
|
|
||||||
conn.authenticate(cookie);
|
|
||||||
|
|
||||||
String torProcId = conn.getInfo("process/pid");
|
|
||||||
return Integer.parseInt(torProcId);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int attempt = 0;
|
int attempt = 0;
|
||||||
|
|
||||||
|
@ -1025,7 +1020,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
|
|
||||||
logNotice( "SUCCESS connected to Tor control port");
|
logNotice( "SUCCESS connected to Tor control port");
|
||||||
|
|
||||||
fileCookie = new File(appCacheHome, TOR_CONTROL_COOKIE);
|
File fileCookie = new File(appCacheHome, TOR_CONTROL_COOKIE);
|
||||||
|
|
||||||
if (fileCookie.exists())
|
if (fileCookie.exists())
|
||||||
{
|
{
|
||||||
|
@ -1052,8 +1047,15 @@ 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");
|
||||||
conn.setConf("Log", "debug file " + fileLog2.getCanonicalPath());
|
conn.setConf("Log", "debug file " + fileLog2.getCanonicalPath());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String state = conn.getInfo("dormant");
|
||||||
|
if (state != null && Integer.parseInt(state) == 0)
|
||||||
|
currentStatus = STATUS_ON;
|
||||||
|
else
|
||||||
|
currentStatus = STATUS_CONNECTING;
|
||||||
|
|
||||||
return Integer.parseInt(torProcId);
|
return Integer.parseInt(torProcId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1075,7 +1077,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
|
|
||||||
try {
|
try {
|
||||||
logNotice("waiting...");
|
logNotice("waiting...");
|
||||||
Thread.sleep(5000); }
|
Thread.sleep(1000); }
|
||||||
catch (Exception e){}
|
catch (Exception e){}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1838,8 +1840,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
||||||
logNotice(context.getString(R.string.network_connectivity_is_good_waking_tor_up_));
|
logNotice(context.getString(R.string.network_connectivity_is_good_waking_tor_up_));
|
||||||
showToolbarNotification(getString(R.string.status_activated),NOTIFY_ID,R.drawable.ic_stat_tor);
|
showToolbarNotification(getString(R.string.status_activated),NOTIFY_ID,R.drawable.ic_stat_tor);
|
||||||
|
|
||||||
if (mHasRoot && mEnableTransparentProxy)
|
//if (mHasRoot && mEnableTransparentProxy)
|
||||||
enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
|
//enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue