[tor-commits] [orbot/master] updates for reading preference settings

n8fr8 at torproject.org n8fr8 at torproject.org
Thu Jul 18 02:44:32 UTC 2013


commit 3ea016ba20f84089a56dfb14cf6fa227c62826ad
Author: n8fr8 <nathan at freitas.net>
Date:   Wed Apr 3 15:46:03 2013 -0400

    updates for reading preference settings
---
 src/org/torproject/android/service/TorService.java |   70 +++++++++++++-------
 .../torproject/android/service/TorTransProxy.java  |   60 +----------------
 2 files changed, 46 insertions(+), 84 deletions(-)

diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java
index 4325650..3520ec1 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -135,7 +135,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 				
  				initControlConnection();
 				
- 				updateTorConfiguration();
+ 				processSettingsImpl();
  				
 				currentStatus = STATUS_ON;
 				
@@ -233,6 +233,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 		
 		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"))
 		{
 			
-			SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+			SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
 			
 			boolean startOnBoot = prefs.getBoolean("pref_start_boot",false);
 			
@@ -346,7 +347,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
     {
     	currentStatus = STATUS_OFF;
     	
-    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
     	
  		boolean hasRoot = prefs.getBoolean(PREF_HAS_ROOT,false);
  		
@@ -406,7 +407,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 	private String getHiddenServiceHostname ()
 	{
 
-    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
 		
         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
     {
-		//android.os.Debug.waitForDebugger();
-    	
     	StringBuilder log = new StringBuilder();
     	int procId = -1;
     	
@@ -535,7 +534,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 
     	initTorPaths();
 		
-    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
     	String currTorBinary = prefs.getString(TorServiceConstants.PREF_BINARY_TOR_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
     {
-    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
     	ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false);
     	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();
 		
-    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    	SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
 		boolean transProxyTethering = prefs.getBoolean("pref_transparent_tethering", false);
  		
 		if (transProxyTethering)
@@ -815,7 +814,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 			
 			initControlConnection ();
 
-			updateTorConfiguration();
+			processSettingsImpl();
 	    }
     }
     
@@ -1144,8 +1143,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 		if (mConnectivity && prefPersistNotifications)
 			startNotification(sb.toString());
 		
-		mTotalTrafficWritten += read;
-		mTotalTrafficRead += written;
+		mTotalTrafficWritten += written;
+		mTotalTrafficRead += read;
 		/*
 		try
 		{
@@ -1249,8 +1248,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
     	_torInstance = this;
     	initTorPaths();
     	
-    	//android.os.Debug.waitForDebugger();
-    	
     	//if Tor was deleted for some reason, do this again!
 		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);
     	Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG);
@@ -1334,7 +1331,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
         	
         	try {
         	 	
-        		updateTorConfiguration();
+        		processSettingsImpl ();
 
 		    	
 			} 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);
    
@@ -1635,10 +1632,29 @@ public class TorService extends Service implements TorServiceConstants, TorConst
         {
         	String proxyHost = prefs.getString("pref_proxy_host", 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)
         	{
         		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)
         {
         	mBinder.updateConfiguration("HiddenServiceDir",appCacheHome.getAbsolutePath(), false);
+        	//mBinder.updateConfiguration("RendPostPeriod", "600 seconds", false); //possible feature to investigate
         	
         	String hsPorts = prefs.getString("pref_hs_ports","");
         	
@@ -1794,23 +1811,26 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 	        		
 	        		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);
 	        		
 	        		hsPort = Integer.parseInt(hsPortConfig.split(" ")[0]);
-					
+
 	        		//start this for the first port specified
 	    			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.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) {
 					Log.e(this.TAG,"error parsing hsport",e);
diff --git a/src/org/torproject/android/service/TorTransProxy.java b/src/org/torproject/android/service/TorTransProxy.java
index 9be6cc2..76741b1 100644
--- a/src/org/torproject/android/service/TorTransProxy.java
+++ b/src/org/torproject/android/service/TorTransProxy.java
@@ -32,7 +32,7 @@ public class TorTransProxy implements TorServiceConstants {
 
 		String ipTablesPath = null;
 		
-		SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+		SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
 		useSystemIpTables = prefs.getBoolean(TorConstants.PREF_USE_SYSTEM_IPTABLES, false);
 		
 		if (useSystemIpTables || mBundledFailed)
@@ -407,65 +407,7 @@ public class TorTransProxy implements TorServiceConstants {
 		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
 	{





More information about the tor-commits mailing list