[tor-commits] [orbot/master] support dynamic SOCKS ip in polipo configuration

n8fr8 at torproject.org n8fr8 at torproject.org
Thu Jul 17 17:58:37 UTC 2014


commit 4d6c32a6a250d99cf66bb0fdce80741ff2710b89
Author: Nathan Freitas <nathan at freitas.net>
Date:   Tue Jul 15 16:10:24 2014 -0400

    support dynamic SOCKS ip in polipo configuration
---
 res/raw/torpolipo.conf                             |  138 --------------------
 src/org/torproject/android/service/TorService.java |   25 +++-
 2 files changed, 24 insertions(+), 139 deletions(-)

diff --git a/res/raw/torpolipo.conf b/res/raw/torpolipo.conf
index 5707c03..feb9d5b 100644
--- a/res/raw/torpolipo.conf
+++ b/res/raw/torpolipo.conf
@@ -1,159 +1,21 @@
-### Basic configuration
-### *******************
-
-# Uncomment one of these if you want to allow remote clients to
-# connect:
-
-# proxyAddress = "::0"        # both IPv4 and IPv6
-# proxyAddress = "0.0.0.0"    # IPv4 only
-
 proxyAddress = "127.0.0.1"
 proxyPort = 8118
-
-# If you do that, you'll want to restrict the set of hosts allowed to
-# connect:
-
-# allowedClients = "127.0.0.1, 134.157.168.57"
-# allowedClients = "127.0.0.1, 134.157.168.0/24"
-
 allowedClients = 127.0.0.1
 allowedPorts = 1-65535
-
-# Uncomment this if you want your Polipo to identify itself by
-# something else than the host name:
-
 proxyName = "localhost"
-
-# Uncomment this if there's only one user using this instance of Polipo:
-
 cacheIsShared = false
-
-# Uncomment this if you want to use a parent proxy:
-
-# parentProxy = "squid.example.org:3128"
-
-# Uncomment this if you want to use a parent SOCKS proxy:
-
 socksParentProxy = "localhost:9050"
 socksProxyType = socks5
-
-
-### Memory
-### ******
-
-# Uncomment this if you want Polipo to use a ridiculously small amount
-# of memory (a hundred C-64 worth or so):
-
 chunkHighMark = 819200
 objectHighMark = 128
-
-# Uncomment this if you've got plenty of memory:
-
-# chunkHighMark = 50331648
-# objectHighMark = 16384
-
-#chunkHighMark = 67108864
-
-### On-disk data
-### ************
-
-# Uncomment this if you want to disable the on-disk cache:
-
 diskCacheRoot = ""
-
-# Uncomment this if you want to put the on-disk cache in a
-# non-standard location:
-
-# diskCacheRoot = "~/.polipo-cache/"
-
-# Uncomment this if you want to disable the local web server:
-
 localDocumentRoot = ""
-
-# Uncomment this if you want to enable the pages under /polipo/index?
-# and /polipo/servers?.  This is a serious privacy leak if your proxy
-# is shared.
-
-# disableIndexing = false
-# disableServersList = false
-
 disableLocalInterface = true
 disableConfiguration = true
-
-### Domain Name System
-### ******************
-
-# Uncomment this if you want to contact IPv4 hosts only (and make DNS
-# queries somewhat faster):
-#
-# dnsQueryIPv6 = no
-
-# Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
-# double-stack hosts:
-#
-# dnsQueryIPv6 = reluctantly
-
-# Uncomment this to disable Polipo's DNS resolver and use the system's
-# default resolver instead.  If you do that, Polipo will freeze during
-# every DNS query:
-
 dnsUseGethostbyname = yes
-
-
-### HTTP
-### ****
-
-# Uncomment this if you want to enable detection of proxy loops.
-# This will cause your hostname (or whatever you put into proxyName
-# above) to be included in every request:
-
 disableVia = true
-
-# Uncomment this if you want to slightly reduce the amount of
-# information that you leak about yourself:
-
-# censoredHeaders = from, accept-language
-# censorReferer = maybe
-
 censoredHeaders = from,accept-language,x-pad,link
 censorReferer = maybe
-
-# Uncomment this if you're paranoid.  This will break a lot of sites,
-# though:
-
-# censoredHeaders = set-cookie, cookie, cookie2, from, accept-language
-# censorReferer = true
-
-# Uncomment this if you want to use Poor Man's Multiplexing; increase
-# the sizes if you're on a fast line.  They should each amount to a few
-# seconds' worth of transfer; if pmmSize is small, you'll want
-# pmmFirstSize to be larger.
-
-# Note that PMM is somewhat unreliable.
-
-# pmmFirstSize = 16384
-# pmmSize = 8192
-
-# Uncomment this if your user-agent does something reasonable with
-# Warning headers (most don't):
-
-# relaxTransparency = maybe
-
-# Uncomment this if you never want to revalidate instances for which
-# data is available (this is not a good idea):
-
-# relaxTransparency = yes
-
-# Uncomment this if you have no network:
-
-# proxyOffline = yes
-
-# Uncomment this if you want to avoid revalidating instances with a
-# Vary header (this is not a good idea):
-
-# mindlesslyCacheVary = true
-
-# Suggestions from Incognito configuration
 maxConnectionAge = 5m
 maxConnectionRequests = 120
 serverMaxSlots = 8
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java
index f72ba31..574ee0a 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -30,6 +30,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Properties;
 import java.util.Set;
 import java.util.StringTokenizer;
 import java.util.concurrent.TimeoutException;
@@ -38,7 +39,6 @@ import java.util.regex.Pattern;
 import net.freehaven.tor.control.ConfigEntry;
 import net.freehaven.tor.control.EventHandler;
 import net.freehaven.tor.control.TorControlConnection;
-import net.freehaven.tor.control.TorControlError;
 
 import org.json.JSONArray;
 import org.json.JSONObject;
@@ -896,6 +896,27 @@ public class TorService extends Service implements TorServiceConstants, TorConst
 		
     }
     
+    private void updatePolipoConfig () throws FileNotFoundException, IOException
+    {
+    	
+		SharedPreferences prefs = TorServiceUtils.getSharedPrefs(getApplicationContext());
+    	String socksPort = prefs.getString(TorConstants.PREF_SOCKS, TorServiceConstants.PORT_SOCKS_DEFAULT);
+
+    	File file = new File(appBinHome, POLIPOCONFIG_ASSET_KEY);
+    	
+    	Properties props = new Properties();
+    	
+    	props.load(new FileReader(file));
+    	
+    	props.put("socksParentProxy", "\"localhost:" + socksPort + "\"");
+    	props.put("proxyPort","8118");
+    	
+    	props.store(new FileWriter(file), "updated");
+    	
+    	props.list(System.out);
+    }
+    
+    
     private void runPolipoShellCmd () throws Exception
     {
     	
@@ -913,6 +934,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
     		{
     			log = new StringBuilder();
     			
+    			updatePolipoConfig();
+    			
     			String polipoConfigPath = new File(appBinHome, POLIPOCONFIG_ASSET_KEY).getCanonicalPath();
     			SimpleCommand cmdPolipo = new SimpleCommand(filePolipo.getCanonicalPath() + " -c " + polipoConfigPath + " &");
     			





More information about the tor-commits mailing list