[tor-commits] [orbot/master] allow support for adding custom lines to torrc

n8fr8 at torproject.org n8fr8 at torproject.org
Mon Jun 9 22:50:39 UTC 2014


commit af51a9853569da03c496ef859188512b47807d04
Author: Nathan Freitas <nathan at freitas.net>
Date:   Mon Jun 9 18:47:48 2014 -0400

    allow support for adding custom lines to torrc
---
 res/values/strings.xml                                       |    5 +++++
 res/xml/preferences.xml                                      |    8 ++++++++
 src/org/torproject/android/service/TorResourceInstaller.java |    9 ++++++++-
 src/org/torproject/android/service/TorService.java           |    5 ++++-
 src/org/torproject/android/service/TorServiceConstants.java  |    2 +-
 5 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/res/values/strings.xml b/res/values/strings.xml
index 42937d4..4456aff 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -261,4 +261,9 @@
     <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_torrc_title">Torrc Custom Config</string>
+    <string name="pref_torrc_summary">EXPERTS ONLY: enter direct torrc config lines</string>
+    <string name="pref_torrc_dialog">Custom Torrc</string>
+    
+    
 </resources>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index e4984e2..0277343 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -204,6 +204,14 @@ android:dialogTitle="@string/pref_socks_dialog"
 android:defaultValue="9050"
 />
     
+  <EditTextPreference android:key="pref_custom_torrc"
+android:title="@string/pref_torrc_title"
+android:summary="@string/pref_torrc_summary"
+android:dialogTitle="@string/pref_torrc_dialog"
+android:defaultValue=""
+/>
+    
+  
 <CheckBoxPreference
 android:key="pref_enable_logging"
 android:defaultValue="false"
diff --git a/src/org/torproject/android/service/TorResourceInstaller.java b/src/org/torproject/android/service/TorResourceInstaller.java
index 438e68d..b8cdf26 100644
--- a/src/org/torproject/android/service/TorResourceInstaller.java
+++ b/src/org/torproject/android/service/TorResourceInstaller.java
@@ -11,6 +11,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.StringBufferInputStream;
 import java.util.ArrayList;
 import java.util.concurrent.TimeoutException;
 import java.util.zip.ZipEntry;
@@ -115,7 +116,7 @@ public class TorResourceInstaller implements TorServiceConstants {
 		return true;
 	}
 	
-	public boolean installTorrc () throws IOException, FileNotFoundException, TimeoutException
+	public boolean installTorrc (String extraLines) throws IOException, FileNotFoundException, TimeoutException
 	{
 		
 		InputStream is;
@@ -128,6 +129,12 @@ public class TorResourceInstaller implements TorServiceConstants {
 		shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish();
 		streamToFile(is,outFile, false, false);
 
+		if (extraLines != null && extraLines.length() > 0)
+		{
+			StringBufferInputStream sbis = new StringBufferInputStream('\n' + extraLines + '\n');
+			streamToFile(sbis,outFile,true,false);
+		}
+		
 		return true;
 	}
 	
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java
index 0e44545..ce2d075 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -557,7 +557,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 		stopTor();
 		
     	TorResourceInstaller installer = new TorResourceInstaller(this, appBinHome); 
-		boolean success = installer.installTorrc();
+    	
+    	String extraLines = prefs.getString("pref_custom_torrc", null);
+    	
+		boolean success = installer.installTorrc(extraLines);
 		
 		if (version == null || (!version.equals(BINARY_TOR_VERSION)) || (!fileTor.exists()))
 		{
diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java
index e50c416..74b2ef7 100644
--- a/src/org/torproject/android/service/TorServiceConstants.java
+++ b/src/org/torproject/android/service/TorServiceConstants.java
@@ -76,7 +76,7 @@ public interface TorServiceConstants {
     public static final int DISABLE_TOR_MSG = 3;
     public static final int LOG_MSG = 4;
     
-    public static final String BINARY_TOR_VERSION = "0.2.4.22-openssl1.0.1h.2";
+    public static final String BINARY_TOR_VERSION = "0.2.4.22-openssl1.0.1h";
     public static final String PREF_BINARY_TOR_VERSION_INSTALLED = "BINARY_TOR_VERSION_INSTALLED";
     
     //obfsproxy 





More information about the tor-commits mailing list