parent
01368e3b1f
commit
9bbc210043
|
@ -21,6 +21,9 @@ public class SettingsPreferences
|
||||||
private CheckBoxPreference prefCBTransProxy = null;
|
private CheckBoxPreference prefCBTransProxy = null;
|
||||||
private CheckBoxPreference prefcBTransProxyAll = null;
|
private CheckBoxPreference prefcBTransProxyAll = null;
|
||||||
private Preference prefTransProxyApps = null;
|
private Preference prefTransProxyApps = null;
|
||||||
|
private Preference prefWebProxy = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private boolean hasRoot = false;
|
private boolean hasRoot = false;
|
||||||
|
|
||||||
|
@ -60,7 +63,9 @@ public class SettingsPreferences
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//disabled for now 28/07 nf
|
||||||
|
//prefWebProxy = ((PreferenceCategory)this.getPreferenceScreen().getPreference(1)).getPreference(0);
|
||||||
|
//prefWebProxy.setOnPreferenceClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,6 +88,17 @@ public class SettingsPreferences
|
||||||
if (preference == prefTransProxyApps)
|
if (preference == prefTransProxyApps)
|
||||||
{
|
{
|
||||||
startActivity(new Intent(this, AppManager.class));
|
startActivity(new Intent(this, AppManager.class));
|
||||||
|
}
|
||||||
|
else if (preference == prefWebProxy)
|
||||||
|
{
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setClassName(this,"com.android.settings.ProxySelector");
|
||||||
|
intent.putExtra("title", "Set host=127.0.0.1 and port=8118");
|
||||||
|
intent.putExtra("button-label", "Save");
|
||||||
|
|
||||||
|
startActivity(intent);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
import net.freehaven.tor.control.ConfigEntry;
|
import net.freehaven.tor.control.ConfigEntry;
|
||||||
import net.freehaven.tor.control.EventHandler;
|
import net.freehaven.tor.control.EventHandler;
|
||||||
|
@ -18,6 +19,7 @@ import net.freehaven.tor.control.TorControlConnection;
|
||||||
import org.torproject.android.AppManager;
|
import org.torproject.android.AppManager;
|
||||||
import org.torproject.android.Orbot;
|
import org.torproject.android.Orbot;
|
||||||
import org.torproject.android.R;
|
import org.torproject.android.R;
|
||||||
|
import org.torproject.android.TorConstants;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
|
@ -652,12 +654,8 @@ public class TorService extends Service implements TorServiceConstants, Runnable
|
||||||
|
|
||||||
addEventHandler();
|
addEventHandler();
|
||||||
|
|
||||||
if (configBuffer != null)
|
applyPreferences();
|
||||||
{
|
|
||||||
conn.setConf(configBuffer);
|
|
||||||
//conn.saveConf();
|
|
||||||
configBuffer = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
break; //don't need to retry
|
break; //don't need to retry
|
||||||
}
|
}
|
||||||
|
@ -978,33 +976,10 @@ public class TorService extends Service implements TorServiceConstants, Runnable
|
||||||
**/
|
**/
|
||||||
public boolean updateConfiguration (String name, String value, boolean saveToDisk)
|
public boolean updateConfiguration (String name, String value, boolean saveToDisk)
|
||||||
{
|
{
|
||||||
try
|
if (configBuffer == null)
|
||||||
{
|
configBuffer = new ArrayList<String>();
|
||||||
if (conn != null)
|
|
||||||
{
|
|
||||||
conn.setConf(name, value);
|
|
||||||
|
|
||||||
if (saveToDisk)
|
configBuffer.add(name + ' ' + value);
|
||||||
{
|
|
||||||
// Flush the configuration to disk.
|
|
||||||
//conn.saveConf(); //NF 22/07/10 this is crashing right now
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (configBuffer == null)
|
|
||||||
configBuffer = new ArrayList<String>();
|
|
||||||
|
|
||||||
configBuffer.add(name + ' ' + value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (IOException ioe)
|
|
||||||
{
|
|
||||||
Log.e(TAG, "Unable to update Tor configuration", ioe);
|
|
||||||
logNotice("Unable to update Tor configuration: " + ioe.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1015,7 +990,12 @@ public class TorService extends Service implements TorServiceConstants, Runnable
|
||||||
{
|
{
|
||||||
if (conn != null)
|
if (conn != null)
|
||||||
{
|
{
|
||||||
|
if (configBuffer != null)
|
||||||
|
{
|
||||||
|
conn.setConf(configBuffer);
|
||||||
|
//conn.saveConf();
|
||||||
|
configBuffer = null;
|
||||||
|
}
|
||||||
|
|
||||||
// Flush the configuration to disk.
|
// Flush the configuration to disk.
|
||||||
//this is doing bad things right now NF 22/07/10
|
//this is doing bad things right now NF 22/07/10
|
||||||
|
@ -1074,6 +1054,106 @@ public class TorService extends Service implements TorServiceConstants, Runnable
|
||||||
mCallbacks.finishBroadcast();
|
mCallbacks.finishBroadcast();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyPreferences () throws RemoteException
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
|
||||||
|
boolean useBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_ENABLED, false);
|
||||||
|
|
||||||
|
boolean autoUpdateBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_UPDATED, false);
|
||||||
|
|
||||||
|
boolean becomeRelay = prefs.getBoolean(TorConstants.PREF_OR, false);
|
||||||
|
|
||||||
|
boolean ReachableAddresses = prefs.getBoolean(TorConstants.PREF_REACHABLE_ADDRESSES,false);
|
||||||
|
|
||||||
|
boolean enableTransparentProxy = prefs.getBoolean(TorConstants.PREF_TRANSPARENT, false);
|
||||||
|
|
||||||
|
|
||||||
|
String bridgeList = prefs.getString(TorConstants.PREF_BRIDGES_LIST,"");
|
||||||
|
|
||||||
|
if (useBridges)
|
||||||
|
{
|
||||||
|
if (bridgeList == null || bridgeList.length() == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
showAlert("Bridge Error","In order to use the bridge feature, you must enter at least one bridge IP address." +
|
||||||
|
"Send an email to bridges@torproject.org with the line \"get bridges\" by itself in the body of the mail from a gmail account.");
|
||||||
|
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
mBinder.updateConfiguration("UseBridges", "1", false);
|
||||||
|
|
||||||
|
String bridgeDelim = "\n";
|
||||||
|
|
||||||
|
if (bridgeList.indexOf(",") != -1)
|
||||||
|
{
|
||||||
|
bridgeDelim = ",";
|
||||||
|
}
|
||||||
|
|
||||||
|
StringTokenizer st = new StringTokenizer(bridgeList,bridgeDelim);
|
||||||
|
while (st.hasMoreTokens())
|
||||||
|
{
|
||||||
|
|
||||||
|
mBinder.updateConfiguration("bridge", st.nextToken(), false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
mBinder.updateConfiguration("UpdateBridgesFromAuthority", "0", false);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mBinder.updateConfiguration("UseBridges", "0", false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (ReachableAddresses)
|
||||||
|
{
|
||||||
|
String ReachableAddressesPorts =
|
||||||
|
prefs.getString(TorConstants.PREF_REACHABLE_ADDRESSES_PORTS, "*:80,*:443");
|
||||||
|
|
||||||
|
mBinder.updateConfiguration("ReachableAddresses", ReachableAddressesPorts, false);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
showAlert("Config Error","Your ReachableAddresses settings caused an exception!");
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (becomeRelay && (!useBridges) && (!ReachableAddresses))
|
||||||
|
{
|
||||||
|
int ORPort = Integer.parseInt(prefs.getString(TorConstants.PREF_OR_PORT, "9001"));
|
||||||
|
String nickname = prefs.getString(TorConstants.PREF_OR_NICKNAME, "Orbot");
|
||||||
|
|
||||||
|
mBinder.updateConfiguration("ORPort", ORPort + "", false);
|
||||||
|
mBinder.updateConfiguration("Nickname", nickname, false);
|
||||||
|
mBinder.updateConfiguration("ExitPolicy", "reject *:*", false);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
showAlert("Uh-oh!","Your relay settings caused an exception!");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mBinder.saveConfiguration();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setupTransProxy (boolean enabled)
|
private void setupTransProxy (boolean enabled)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue