updates for reading preference settings

This commit is contained in:
n8fr8 2013-04-03 15:46:03 -04:00
parent c5627f4f9a
commit 3ea016ba20
2 changed files with 46 additions and 84 deletions

View File

@ -135,7 +135,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
initControlConnection(); initControlConnection();
updateTorConfiguration(); processSettingsImpl();
currentStatus = STATUS_ON; currentStatus = STATUS_ON;
@ -233,6 +233,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
initTorPaths(); initTorPaths();
sendCallbackLogMessage("Welcome back, Carter!");
} }
@ -275,7 +276,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (intent != null && intent.getAction()!=null && intent.getAction().equals("onboot")) if (intent != null && intent.getAction()!=null && intent.getAction().equals("onboot"))
{ {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean startOnBoot = prefs.getBoolean("pref_start_boot",false); boolean startOnBoot = prefs.getBoolean("pref_start_boot",false);
@ -346,7 +347,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{ {
currentStatus = STATUS_OFF; currentStatus = STATUS_OFF;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasRoot = prefs.getBoolean(PREF_HAS_ROOT,false); boolean hasRoot = prefs.getBoolean(PREF_HAS_ROOT,false);
@ -406,7 +407,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
private String getHiddenServiceHostname () private String getHiddenServiceHostname ()
{ {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean enableHiddenServices = prefs.getBoolean("pref_hs_enable", false); boolean enableHiddenServices = prefs.getBoolean("pref_hs_enable", false);
@ -445,8 +446,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
private void killTorProcess () throws Exception private void killTorProcess () throws Exception
{ {
//android.os.Debug.waitForDebugger();
StringBuilder log = new StringBuilder(); StringBuilder log = new StringBuilder();
int procId = -1; int procId = -1;
@ -535,7 +534,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
initTorPaths(); initTorPaths();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String currTorBinary = prefs.getString(TorServiceConstants.PREF_BINARY_TOR_VERSION_INSTALLED, null); String currTorBinary = prefs.getString(TorServiceConstants.PREF_BINARY_TOR_VERSION_INSTALLED, null);
String currPrivoxyBinary = prefs.getString(TorServiceConstants.PREF_BINARY_PRIVOXY_VERSION_INSTALLED, null); String currPrivoxyBinary = prefs.getString(TorServiceConstants.PREF_BINARY_PRIVOXY_VERSION_INSTALLED, null);
@ -628,7 +627,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
public void initTor () throws Exception public void initTor () throws Exception
{ {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false); ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false);
Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG); Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG);
@ -752,7 +751,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
String torrcPath = new File(appBinHome, TORRC_ASSET_KEY).getAbsolutePath(); String torrcPath = new File(appBinHome, TORRC_ASSET_KEY).getAbsolutePath();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean transProxyTethering = prefs.getBoolean("pref_transparent_tethering", false); boolean transProxyTethering = prefs.getBoolean("pref_transparent_tethering", false);
if (transProxyTethering) if (transProxyTethering)
@ -815,7 +814,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
initControlConnection (); initControlConnection ();
updateTorConfiguration(); processSettingsImpl();
} }
} }
@ -1144,8 +1143,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (mConnectivity && prefPersistNotifications) if (mConnectivity && prefPersistNotifications)
startNotification(sb.toString()); startNotification(sb.toString());
mTotalTrafficWritten += read; mTotalTrafficWritten += written;
mTotalTrafficRead += written; mTotalTrafficRead += read;
/* /*
try try
{ {
@ -1249,8 +1248,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
_torInstance = this; _torInstance = this;
initTorPaths(); initTorPaths();
//android.os.Debug.waitForDebugger();
//if Tor was deleted for some reason, do this again! //if Tor was deleted for some reason, do this again!
if (!fileTor.exists()) if (!fileTor.exists())
{ {
@ -1272,7 +1269,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
} }
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false); ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false);
Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG); Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG);
@ -1334,7 +1331,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
try { try {
updateTorConfiguration(); processSettingsImpl ();
} catch (RemoteException e) { } catch (RemoteException e) {
@ -1607,10 +1604,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst
} }
}; };
private boolean updateTorConfiguration () throws RemoteException private boolean processSettingsImpl () throws RemoteException
{ {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
prefPersistNotifications = prefs.getBoolean(TorConstants.PREF_PERSIST_NOTIFICATIONS, true); prefPersistNotifications = prefs.getBoolean(TorConstants.PREF_PERSIST_NOTIFICATIONS, true);
@ -1635,10 +1632,29 @@ public class TorService extends Service implements TorServiceConstants, TorConst
{ {
String proxyHost = prefs.getString("pref_proxy_host", null); String proxyHost = prefs.getString("pref_proxy_host", null);
String proxyPort = prefs.getString("pref_proxy_port", null); String proxyPort = prefs.getString("pref_proxy_port", null);
String proxyUser = prefs.getString("pref_proxy_username", null);
String proxyPass = prefs.getString("pref_proxy_password", null);
if (proxyHost != null && proxyPort != null) if (proxyHost != null && proxyPort != null)
{ {
mBinder.updateConfiguration(proxyType + "Proxy", proxyHost + ':' + proxyPort, false); mBinder.updateConfiguration(proxyType + "Proxy", proxyHost + ':' + proxyPort, false);
if (proxyUser != null && proxyPass != null)
{
if (proxyType.equalsIgnoreCase("socks5"))
{
mBinder.updateConfiguration("Socks5ProxyUsername", proxyUser, false);
mBinder.updateConfiguration("Socks5ProxyPassword", proxyPass, false);
}
else
mBinder.updateConfiguration(proxyType + "ProxyAuthenticator", proxyUser + ':' + proxyPort, false);
}
else if (proxyPass != null)
mBinder.updateConfiguration(proxyType + "ProxyAuthenticator", proxyUser + ':' + proxyPort, false);
} }
} }
@ -1779,6 +1795,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (enableHiddenServices) if (enableHiddenServices)
{ {
mBinder.updateConfiguration("HiddenServiceDir",appCacheHome.getAbsolutePath(), false); mBinder.updateConfiguration("HiddenServiceDir",appCacheHome.getAbsolutePath(), false);
//mBinder.updateConfiguration("RendPostPeriod", "600 seconds", false); //possible feature to investigate
String hsPorts = prefs.getString("pref_hs_ports",""); String hsPorts = prefs.getString("pref_hs_ports","");
@ -1794,7 +1811,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (hsPortConfig.indexOf(":")==-1) //setup the port to localhost if not specifed if (hsPortConfig.indexOf(":")==-1) //setup the port to localhost if not specifed
{ {
hsPortConfig = hsPortConfig + " 127.0.0.1:" + hsPortConfig; hsPortConfig = hsPortConfig + " 0.0.0.0:" + hsPortConfig;
} }
mBinder.updateConfiguration("HiddenServicePort",hsPortConfig, false); mBinder.updateConfiguration("HiddenServicePort",hsPortConfig, false);
@ -1804,14 +1821,17 @@ public class TorService extends Service implements TorServiceConstants, TorConst
//start this for the first port specified //start this for the first port specified
if (mShareServe == null) if (mShareServe == null)
{ {
//we load this here from the file directory based on data
//written by Tor binary
mShareServeHost = getHiddenServiceHostname ();
mShareServePort = hsPort;
mShareServe = new ShareService(10, this); mShareServe = new ShareService(10, this);
mShareServe.startService(hsPort);
} }
//we load this here from the file directory based on data
//written by Tor binary
mShareServeHost = getHiddenServiceHostname ();
mShareServePort = hsPort;
mShareServe.startService(hsPort);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
Log.e(this.TAG,"error parsing hsport",e); Log.e(this.TAG,"error parsing hsport",e);
} catch (Exception e) { } catch (Exception e) {

View File

@ -32,7 +32,7 @@ public class TorTransProxy implements TorServiceConstants {
String ipTablesPath = null; String ipTablesPath = null;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
useSystemIpTables = prefs.getBoolean(TorConstants.PREF_USE_SYSTEM_IPTABLES, false); useSystemIpTables = prefs.getBoolean(TorConstants.PREF_USE_SYSTEM_IPTABLES, false);
if (useSystemIpTables || mBundledFailed) if (useSystemIpTables || mBundledFailed)
@ -407,65 +407,7 @@ public class TorTransProxy implements TorServiceConstants {
return code; return code;
} }
/*
// this is a bad idea so removing
public int setTransparentProxyingByPort(Context context, int port) throws Exception
{
//android.os.Debug.waitForDebugger();
//redirectDNSResolvConf(); //not working yet
//String baseDir = context.getDir("bin",0).getAbsolutePath() + '/';
String ipTablesPath = getIpTablesPath(context);
StringBuilder script = new StringBuilder();
StringBuilder res = new StringBuilder();
int code = -1;
//flushIptables(context);
//TCP
//iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $srcPortNumber -j REDIRECT --to-port $dstPortNumbe
script.append(ipTablesPath);
script.append(" -t nat");
script.append(" -A OUTPUT -p tcp");
script.append(" --dport ");
script.append(port);
//script.append(" -m tcp --syn");
script.append(" -j REDIRECT --to-ports ");
script.append(TOR_TRANSPROXY_PORT);
script.append(" || exit\n");
script.append(ipTablesPath);
script.append(" -t nat");
script.append(" -A OUTPUT -p udp");
script.append(" --dport ");
script.append(port);
script.append(" -j REDIRECT --to-ports ");
script.append(TOR_TRANSPROXY_PORT);
script.append(" || exit\n");
//DNS
script.append(ipTablesPath);
script.append(" -t nat");
script.append(" -A OUTPUT -p udp ");
script.append(" -m udp --dport ");
script.append(STANDARD_DNS_PORT);
script.append(" -j REDIRECT --to-ports ");
script.append(TOR_DNS_PORT);
script.append(" || exit\n");
String[] cmdAdd = {script.toString()};
code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
String msg = res.toString();
TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
return code;
}
*/
public int enableTetheringRules (Context context) throws Exception public int enableTetheringRules (Context context) throws Exception
{ {