[tor-commits] [orbot/master] Expose PreferIPv6 and NoIPv4Traffic options

n8fr8 at torproject.org n8fr8 at torproject.org
Fri Mar 22 16:30:10 UTC 2019


commit 12b91c44f3af675dd0db5a3bacbf232c0f8d61f4
Author: Tad <tad at spotco.us>
Date:   Fri Jan 18 16:22:36 2019 -0500

    Expose PreferIPv6 and NoIPv4Traffic options
    
    See https://trac.torproject.org/projects/tor/ticket/21269
---
 app/src/main/res/values/strings.xml                      |  4 ++++
 app/src/main/res/xml/preferences.xml                     | 15 +++++++++++++--
 .../org/torproject/android/service/OrbotConstants.java   |  3 +++
 .../java/org/torproject/android/service/TorService.java  | 16 +++++++++++++---
 4 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fb51caa1..5a3730ed 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -388,6 +388,10 @@
     <string name="pref_connection_padding_summary">Always enables connection padding to defend against some forms of traffic analysis. Default: auto</string>
     <string name="pref_reduced_connection_padding">Reduced connection padding</string>
     <string name="pref_reduced_connection_padding_summary">Closes relay connections sooner and sends less padding packets to reduce data and battery usage</string>
+    <string name="pref_prefer_ipv6">Prefer IPv6 connections</string>
+    <string name="pref_prefer_ipv6_summary">Tells exits that IPv6 addresses are preferred</string>
+    <string name="pref_disable_ipv4">Disable IPv4 connections</string>
+    <string name="pref_disable_ipv4_summary">Tells exits not to connect to IPv4 addresses</string>
     <string name="please_enable_vpn">Please activate the VPN mode to enable apps to use Tor</string>
     <string name="app_shortcuts">Tor-Enabled Apps</string>
     <string name="title_activity_bridge_wizard">BridgeWizardActivity</string>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 0e5a70be..1f49d58b 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -174,13 +174,25 @@
             android:title="@string/reachable_ports" />
     </PreferenceCategory>
 
-    <PreferenceCategory android:title="Isolation">
+    <PreferenceCategory android:title="Connectivity">
         <CheckBoxPreference
             android:defaultValue="false"
             android:enabled="true"
             android:key="pref_isolate_dest"
             android:summary="@string/pref_isolate_dest_summary"
             android:title="@string/pref_isolate_dest" />
+        <CheckBoxPreference
+            android:defaultValue="true"
+            android:enabled="true"
+            android:key="pref_prefer_ipv6"
+            android:summary="@string/pref_prefer_ipv6_summary"
+            android:title="@string/pref_prefer_ipv6" />
+        <CheckBoxPreference
+            android:defaultValue="false"
+            android:enabled="true"
+            android:key="pref_disable_ipv4"
+            android:summary="@string/pref_disable_ipv4_summary"
+            android:title="@string/pref_disable_ipv4" />
     </PreferenceCategory>
 
     <PreferenceCategory android:title="ConnectionPadding">
@@ -198,7 +210,6 @@
             android:title="@string/pref_reduced_connection_padding" />
     </PreferenceCategory>
 
-
     <PreferenceCategory android:title="@string/pref_proxy_title">
         <EditTextPreference
             android:dialogTitle="@string/pref_proxy_type_dialog"
diff --git a/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java b/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java
index 06b1da83..e7f09a77 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java
@@ -39,4 +39,7 @@ public interface OrbotConstants {
 	public final static String PREF_CONNECTION_PADDING = "pref_connection_padding";
 	public final static String PREF_REDUCED_CONNECTION_PADDING = "pref_reduced_connection_padding";
 
+	public final static String PREF_PREFER_IPV6 = "pref_prefer_ipv6";
+	public final static String PREF_DISABLE_IPV4 = "pref_disable_ipv4";
+
 }
diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorService.java b/orbotservice/src/main/java/org/torproject/android/service/TorService.java
index 2ce7b706..c1178eda 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/TorService.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/TorService.java
@@ -641,16 +641,26 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
         String isolate = " ";
         if(prefs.getBoolean(OrbotConstants.PREF_ISOLATE_DEST, false))
         {
-            isolate += "IsolateDestAddr";
+            isolate += "IsolateDestAddr ";
+        }
+
+        String ipv6Pref = " IPv6Traffic ";
+        if(prefs.getBoolean(OrbotConstants.PREF_PREFER_IPV6, true))
+        {
+            ipv6Pref += "PreferIPv6 ";
+        }
+        if(prefs.getBoolean(OrbotConstants.PREF_DISABLE_IPV4, false))
+        {
+            ipv6Pref += "NoIPv4Traffic ";
         }
         
-        extraLines.append("SOCKSPort ").append(socksPortPref).append(isolate).append('\n');
+        extraLines.append("SOCKSPort ").append(socksPortPref).append(isolate).append(ipv6Pref).append('\n');
         extraLines.append("SafeSocks 0").append('\n');
         extraLines.append("TestSocks 0").append('\n');
     	if (Prefs.openProxyOnAllInterfaces())
     		extraLines.append("SocksListenAddress 0.0.0.0").append('\n');
 
-        extraLines.append("HTTPTunnelPort ").append(mPortHTTP).append(isolate).append('\n');
+        extraLines.append("HTTPTunnelPort ").append(mPortHTTP).append(isolate).append(ipv6Pref).append('\n');
 
 
 	if(prefs.getBoolean(OrbotConstants.PREF_CONNECTION_PADDING, false))





More information about the tor-commits mailing list