[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