[tor-commits] [orbot/master] fulfilles the wishes of #12413 by support --default-torrc and -f

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


commit 2eb79a51856b05fc2636d81ed15bd75755646972
Author: Nathan Freitas <nathan at freitas.net>
Date:   Tue Jun 17 16:32:49 2014 -0400

    fulfilles the wishes of #12413 by support --default-torrc and -f
---
 .../android/service/TorResourceInstaller.java      |   29 +-------
 src/org/torproject/android/service/TorService.java |   73 ++++++++++++++++----
 2 files changed, 63 insertions(+), 39 deletions(-)

diff --git a/src/org/torproject/android/service/TorResourceInstaller.java b/src/org/torproject/android/service/TorResourceInstaller.java
index 9478384..3e91ea4 100644
--- a/src/org/torproject/android/service/TorResourceInstaller.java
+++ b/src/org/torproject/android/service/TorResourceInstaller.java
@@ -116,35 +116,12 @@ public class TorResourceInstaller implements TorServiceConstants {
 		return true;
 	}
 	
-	public boolean updateTorConfig (File fileTorRc, String extraLines) throws IOException, FileNotFoundException, TimeoutException
+	public boolean updateTorConfigCustom (File fileTorRcCustom, String extraLines) throws IOException, FileNotFoundException, TimeoutException
 	{
 		
-		InputStream is;
-        
-        Shell shell = Shell.startShell(new ArrayList<String>(),installFolder.getAbsolutePath());
-        
-		is = context.getResources().openRawResource(R.raw.torrc);		
-		shell.add(new SimpleCommand(COMMAND_RM_FORCE + fileTorRc.getAbsolutePath())).waitForFinish();
-		streamToFile(is,fileTorRc, false, false);
 
-		if (extraLines != null && extraLines.length() > 0)
-		{
-			StringBufferInputStream sbis = new StringBufferInputStream('\n' + extraLines + '\n');
-			streamToFile(sbis,fileTorRc,true,false);
-		}
-		
-		is = context.getResources().openRawResource(R.raw.torrcdiag);
-		fileTorRc = new File(installFolder, TORRCDIAG_ASSET_KEY);
-		shell.add(new SimpleCommand(COMMAND_RM_FORCE + fileTorRc.getAbsolutePath())).waitForFinish();
-		streamToFile(is,fileTorRc, false, false);
-
-		if (extraLines != null && extraLines.length() > 0)
-		{
-			StringBufferInputStream sbis = new StringBufferInputStream('\n' + extraLines + '\n');
-			streamToFile(sbis,fileTorRc,true,false);
-		}
-		
-		shell.close();
+		StringBufferInputStream sbis = new StringBufferInputStream(extraLines + '\n');
+		streamToFile(sbis,fileTorRcCustom,false,false);
 		
 		return true;
 	}
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java
index 5acb900..cca714c 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -23,8 +23,6 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.StringTokenizer;
-import java.util.Timer;
-import java.util.TimerTask;
 import java.util.concurrent.TimeoutException;
 
 import net.freehaven.tor.control.ConfigEntry;
@@ -54,6 +52,7 @@ import android.graphics.Color;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.os.AsyncTask;
+import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
@@ -194,7 +193,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 
 	public int getTorStatus ()
     {
-    	
+		
     	return currentStatus;
     	
     }
@@ -236,10 +235,14 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 		if (notifyId == ERROR_NOTIFY_ID)
 		{
 			mNotifyBuilder.setTicker(notifyMsg);
-			mNotifyBuilder.setOngoing(false);
 			mNotifyBuilder.setLights(Color.RED, 1000, 1000);
 			mNotifyBuilder.setSmallIcon(R.drawable.ic_stat_notifyerr);
 		}
+		else
+		{
+			mNotifyBuilder.setTicker("");
+			//mNotifyBuilder.setLights(Color.GREEN, 5000, 5000);
+		}
 		
 		if (isOngoing)
 		{
@@ -559,9 +562,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst
     	extraLines.append('\n');
     	extraLines.append(prefs.getString("pref_custom_torrc", ""));
 
-		logNotice("updating torrc configuration...");
+		logNotice("updating torrc custom configuration...");
 
-    	boolean success = installer.updateTorConfig(fileTorRc, extraLines.toString());    
+		File fileTorRcCustom = new File(fileTorRc.getAbsolutePath() + ".custom");
+    	boolean success = installer.updateTorConfigCustom(fileTorRcCustom, extraLines.toString());    
     	
     	if (success)
     	{
@@ -765,7 +769,11 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 		Shell shell = Shell.startShell();
 		
 		
-		SimpleCommand cmdTor = new SimpleCommand(fileTor.getCanonicalPath() + " DataDirectory " + appCacheHome.getCanonicalPath() + " -f " + torrcPath + " &");
+		SimpleCommand cmdTor = new SimpleCommand(fileTor.getCanonicalPath() 
+				+ " DataDirectory " + appCacheHome.getCanonicalPath() 
+				+ " --defaults-torrc " + torrcPath
+				+ " -f " + torrcPath + ".custom"
+				+ " &");
 		
 		shell.add(cmdTor);
 		
@@ -1110,7 +1118,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 			return PROFILE_ON;
 		}
 		
-		
 		public void setTorProfile(int profile)  {
 		
 			if (currentStatus == STATUS_OFF)
@@ -1123,6 +1130,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 	   			   initTor();
 
 	        		currentStatus = STATUS_CONNECTING;
+	        		
 	   		     }
 	   		     catch (Exception e)
 	   		     {				
@@ -1159,6 +1167,48 @@ public class TorService extends Service implements TorServiceConstants, TorConst
       	
           
 	}
+	
+
+	
+	private Handler mHandlerStatusChecker = null;
+	
+	private void enableStatusChecker ()
+	{
+
+		if (mHandlerStatusChecker != null)
+			mHandlerStatusChecker = new Handler();
+		
+		mHandlerStatusChecker.postDelayed(new Runnable ()
+		{
+			public void run ()
+			{
+				if (conn != null)
+				{
+					try
+					{
+						String state = conn.getInfo("dormant");
+						if (state != null && Integer.parseInt(state) == 0)
+						{
+							currentStatus = STATUS_ON;
+							
+						}
+						else
+						{
+							currentStatus = STATUS_CONNECTING;
+							showToolbarNotification(getString(R.string.no_internet_connection_tor),NOTIFY_ID,R.drawable.ic_stat_tor_off,prefPersistNotifications);
+
+						}
+					}
+					catch (Exception e){}
+					
+
+    				mHandlerStatusChecker.postDelayed(this,1000);
+				}
+
+				
+			}
+		},1000);
+	}
 
 	public void newDescriptors(List<String> orList) {
 		
@@ -1233,9 +1283,6 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 			
 			sendCallbackStatusMessage(written, read, mTotalTrafficWritten, mTotalTrafficRead); 
 
-	//		if(++notificationCounter%10==0)
-		//	    startService(new Intent(ITorService.class.getName()));
-
 		}
 		
 		lastWritten = written;
@@ -1762,8 +1809,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 							logNotice(context.getString(R.string.network_connectivity_is_good_waking_tor_up_));
 							showToolbarNotification(getString(R.string.status_activated),NOTIFY_ID,R.drawable.ic_stat_tor,prefPersistNotifications);
 
-							if (mHasRoot && mEnableTransparentProxy)
-								enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
+							//if (mHasRoot && mEnableTransparentProxy)
+								//enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
 							
 				        }
 					}



More information about the tor-commits mailing list