[tor-commits] [orbot/master] fixes #12411 and #12412 enables DNS and transport by default

n8fr8 at torproject.org n8fr8 at torproject.org
Tue Jun 17 20:33:59 UTC 2014


commit b6715b4d3c3e84caab6108e3702010066f2b36db
Author: Nathan Freitas <nathan at freitas.net>
Date:   Tue Jun 17 15:42:54 2014 -0400

    fixes #12411 and #12412 enables DNS and transport by default
    with new Orbot settings to enable user to easily change/disable
---
 res/values/strings.xml                             |   14 ++++++-
 res/xml/preferences.xml                            |   14 +++++++
 src/org/torproject/android/service/TorService.java |   42 +++++++++++++++-----
 .../android/service/TorServiceConstants.java       |    4 +-
 .../torproject/android/service/TorTransProxy.java  |   32 ++++++++++-----
 5 files changed, 84 insertions(+), 22 deletions(-)

diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4456aff..d380579 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -258,8 +258,18 @@
     <string name="updating_settings_in_tor_service">updating settings in Tor service</string>
   
     <string name="pref_socks_title">Tor SOCKS</string>
-    <string name="pref_socks_summary">IP and Port that Tor offers its SOCKS proxy on (default: 9050)</string>
-    <string name="pref_socks_dialog">SOCKS Config (ip:port)</string>
+    <string name="pref_socks_summary">Port that Tor offers its SOCKS proxy on (default: 9050 or 0 to disable)</string>
+    <string name="pref_socks_dialog">SOCKS Port Config</string>
+    
+    <string name="pref_transport_title">Tor TransProxy Port</string>
+    <string name="pref_transport_summary">Port that Tor offers its Transparent Proxy on (default: 9040 or 0 to disable)</string>
+    <string name="pref_transport_dialog">TransProxy Port Config</string>
+    
+    
+    <string name="pref_dnsport_title">Tor DNS Port</string>
+    <string name="pref_dnsport_summary">Port that Tor offers its DNS on (default: 5400 or 0 to disable)</string>
+    <string name="pref_dnsport_dialog">DNS Port Config</string>
+    
     
     <string name="pref_torrc_title">Torrc Custom Config</string>
     <string name="pref_torrc_summary">EXPERTS ONLY: enter direct torrc config lines</string>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 0277343..22502b6 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -204,6 +204,20 @@ android:dialogTitle="@string/pref_socks_dialog"
 android:defaultValue="9050"
 />
     
+      <EditTextPreference android:key="pref_transport"
+android:title="@string/pref_transport_title"
+android:summary="@string/pref_transport_summary"
+android:dialogTitle="@string/pref_transport_dialog"
+android:defaultValue="9040"
+/>
+      
+        <EditTextPreference android:key="pref_dnsport"
+android:title="@string/pref_dnsport_title"
+android:summary="@string/pref_dnsport_summary"
+android:dialogTitle="@string/pref_dnsport_dialog"
+android:defaultValue="5400"
+/>
+    
   <EditTextPreference android:key="pref_custom_torrc"
 android:title="@string/pref_torrc_title"
 android:summary="@string/pref_torrc_summary"
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java
index 5f9e178..5acb900 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -659,19 +659,24 @@ public class TorService extends Service implements TorServiceConstants, TorConst
  		{
  			mTransProxy = new TorTransProxy(this, fileXtables);
  			
- 			
  		}
  		
 
-     	logMessage ("Transparent Proxying: updating Tor settings...");
-     	
- 		mBinder.updateConfiguration("TransPort","9040",false);
- 		mBinder.updateConfiguration("DNSPort","5400",false);
- 		mBinder.updateConfiguration("VirtualAddrNetwork","10.192.0.0/10",false);
- 		mBinder.updateConfiguration("AutomapHostsOnResolve","1",false);
- 		mBinder.saveConfiguration();
-	 		
 
+		SharedPreferences prefs = TorServiceUtils.getSharedPrefs(getApplicationContext());
+		String transProxy = prefs.getString("pref_transport", TorServiceConstants.TOR_TRANSPROXY_PORT_DEFAULT+"");
+		String dnsPort = prefs.getString("pref_dnsport", TorServiceConstants.TOR_TRANSPROXY_PORT_DEFAULT+"");
+		
+		if (transProxy.indexOf(':')!=-1) //we just want the port for this
+			transProxy = transProxy.split(":")[1];
+		
+		if (dnsPort.indexOf(':')!=-1) //we just want the port for this
+			dnsPort = dnsPort.split(":")[1];
+		
+		mTransProxy.setTransProxyPort(Integer.parseInt(transProxy));
+		mTransProxy.setDNSPort(Integer.parseInt(dnsPort));
+
+     
 		//TODO: Find a nice place for the next (commented) line
 		//TorTransProxy.setDNSProxying(); 
 		
@@ -1781,6 +1786,12 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 
 		enableSocks (socksConfig,false);
 		
+		String transPort = prefs.getString("pref_transport", TorServiceConstants.TOR_TRANSPROXY_PORT_DEFAULT+"");
+		String dnsPort = prefs.getString("pref_dnsport", TorServiceConstants.TOR_DNS_PORT_DEFAULT+"");
+		
+		enableTransProxyAndDNSPorts(transPort, dnsPort);
+		
+		
 		boolean useBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_ENABLED, false);
 		
 		//boolean autoUpdateBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_UPDATED, false);
@@ -2041,6 +2052,19 @@ public class TorService extends Service implements TorServiceConstants, TorConst
         
     }
     
+    private void enableTransProxyAndDNSPorts (String transPort, String dnsPort) throws RemoteException
+    {
+    	logMessage ("Transparent Proxying: enabling port...");
+     	
+ 		mBinder.updateConfiguration("TransPort",transPort,false);
+ 		mBinder.updateConfiguration("DNSPort",dnsPort,false);
+ 		mBinder.updateConfiguration("VirtualAddrNetwork","10.192.0.0/10",false);
+ 		mBinder.updateConfiguration("AutomapHostsOnResolve","1",false);
+ 		mBinder.saveConfiguration();
+	 		
+
+    }
+    
     private void blockPlaintextPorts (String portList) throws RemoteException
     {
     	
diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java
index 0890f9e..8c53779 100644
--- a/src/org/torproject/android/service/TorServiceConstants.java
+++ b/src/org/torproject/android/service/TorServiceConstants.java
@@ -54,9 +54,9 @@ public interface TorServiceConstants {
 	//what is says!
 	public final static String IP_LOCALHOST = "127.0.0.1";
 	public final static int UPDATE_TIMEOUT = 1000;
-	public final static int TOR_TRANSPROXY_PORT = 9040;
+	public final static int TOR_TRANSPROXY_PORT_DEFAULT = 9040;
 	public final static int STANDARD_DNS_PORT = 53;
-	public final static int TOR_DNS_PORT = 5400;
+	public final static int TOR_DNS_PORT_DEFAULT = 5400;
 	
 	//path to check Tor against
 	public final static String URL_TOR_CHECK = "https://check.torproject.org";
diff --git a/src/org/torproject/android/service/TorTransProxy.java b/src/org/torproject/android/service/TorTransProxy.java
index 4999777..400b1db 100644
--- a/src/org/torproject/android/service/TorTransProxy.java
+++ b/src/org/torproject/android/service/TorTransProxy.java
@@ -23,10 +23,24 @@ public class TorTransProxy implements TorServiceConstants {
 	
 	private final static String ALLOW_LOCAL = " ! -o lo ! -d 127.0.0.1 ! -s 127.0.0.1 ";
 
+	private int mTransProxyPort = TorServiceConstants.TOR_TRANSPROXY_PORT_DEFAULT;
+	private int mDNSPort = TorServiceConstants.TOR_DNS_PORT_DEFAULT;
+	
 	public TorTransProxy (TorService torService, File fileXTables)
 	{
 		mTorService = torService;
 		mFileXtables = fileXTables;
+		
+	}
+	
+	public void setTransProxyPort (int transProxyPort)
+	{
+		mTransProxyPort = transProxyPort;
+	}
+	
+	public void setDNSPort (int dnsPort)
+	{
+		mDNSPort = dnsPort;
 	}
 	
 	public String getIpTablesPath (Context context)
@@ -383,7 +397,7 @@ public class TorTransProxy implements TorServiceConstants {
 				script.append(tApp.getUid());
 				script.append(" -m tcp --syn");
 				script.append(" -j REDIRECT --to-ports ");
-				script.append(TOR_TRANSPROXY_PORT);
+				script.append(mTransProxyPort);
 				
 				executeCommand (shell, script.toString());
 				script = new StringBuilder();
@@ -398,7 +412,7 @@ public class TorTransProxy implements TorServiceConstants {
 				script.append(" -m udp --dport "); 
 				script.append(STANDARD_DNS_PORT);
 				script.append(" -j REDIRECT --to-ports ");
-				script.append(TOR_DNS_PORT);
+				script.append(mDNSPort);
 
 				executeCommand (shell, script.toString());
 				script = new StringBuilder();
@@ -454,7 +468,7 @@ public class TorTransProxy implements TorServiceConstants {
 			script.append(" -t nat -A PREROUTING -i ");
 			script.append(hwinterfaces[i]);
 			script.append(" -p udp --dport 53 -j REDIRECT --to-ports ");
-			script.append(TOR_DNS_PORT);
+			script.append(mDNSPort);
 			
 			executeCommand (shell, script.toString());
 			script = new StringBuilder();
@@ -465,7 +479,7 @@ public class TorTransProxy implements TorServiceConstants {
 			script.append(" -t nat -A PREROUTING -i ");
 			script.append(hwinterfaces[i]);
 			script.append(" -p tcp -j REDIRECT --to-ports ");
-			script.append(TOR_TRANSPROXY_PORT);
+			script.append(mTransProxyPort);
 			
 			lastExit = executeCommand (shell, script.toString());
 			script = new StringBuilder();
@@ -642,7 +656,7 @@ public class TorTransProxy implements TorServiceConstants {
 		script.append(torUid);
 		script.append(" -m tcp --syn");
 		script.append(" -j REDIRECT --to-ports ");
-		script.append(TOR_TRANSPROXY_PORT);
+		script.append(mTransProxyPort);
 
 		executeCommand (shell, script.toString());
 		script = new StringBuilder();
@@ -658,7 +672,7 @@ public class TorTransProxy implements TorServiceConstants {
 		script.append(" -m udp --dport "); 
 		script.append(STANDARD_DNS_PORT);
 		script.append(" -j REDIRECT --to-ports ");
-		script.append(TOR_DNS_PORT);
+		script.append(mDNSPort);
 
 		executeCommand (shell, script.toString());
 		script = new StringBuilder();
@@ -699,7 +713,7 @@ public class TorTransProxy implements TorServiceConstants {
 		script.append(" -A ").append(srcChainName);
 		script.append(" -p tcp");
 		script.append(" -m tcp");
-		script.append(" --dport ").append(TOR_TRANSPROXY_PORT);
+		script.append(" --dport ").append(mTransProxyPort);
 		script.append(" -j ACCEPT");
 
 		executeCommand (shell, script.toString());
@@ -735,7 +749,7 @@ public class TorTransProxy implements TorServiceConstants {
 		script.append(" -A ").append(srcChainName);
 		script.append(" -p udp");
 		script.append(" -m udp");
-		script.append(" --dport ").append(TOR_DNS_PORT);
+		script.append(" --dport ").append(mDNSPort);
 		script.append(" -j ACCEPT");
 
 		executeCommand (shell, script.toString());
@@ -747,7 +761,7 @@ public class TorTransProxy implements TorServiceConstants {
 		script.append(" -A ").append(srcChainName);
 		script.append(" -p udp");
 		script.append(" -m udp");
-		script.append(" --dport ").append(TOR_DNS_PORT);
+		script.append(" --dport ").append(mDNSPort);
 		script.append(" -j ACCEPT");
 
 		executeCommand (shell, script.toString());





More information about the tor-commits mailing list