tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 213278 discussions

r24713: {projects} merged __sporkbomb's xclnt patch for fixing transproxy all m (projects/android/trunk/Orbot/src/org/torproject/android/service)
by Nathan Freitas 03 May '11
by Nathan Freitas 03 May '11
03 May '11
Author: n8fr8
Date: 2011-05-03 05:56:04 +0000 (Tue, 03 May 2011)
New Revision: 24713
Modified:
projects/android/trunk/Orbot/src/org/torproject/android/service/TorTransProxy.java
Log:
merged __sporkbomb's xclnt patch for fixing transproxy all mode
Modified: projects/android/trunk/Orbot/src/org/torproject/android/service/TorTransProxy.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/service/TorTransProxy.java 2011-05-03 05:54:24 UTC (rev 24712)
+++ projects/android/trunk/Orbot/src/org/torproject/android/service/TorTransProxy.java 2011-05-03 05:56:04 UTC (rev 24713)
@@ -125,19 +125,52 @@
}
*/
- public static int setTransparentProxyingByApp(Context context, TorifiedApp[] apps, boolean forceAll) throws Exception
+ public static int testOwnerModule(Context context) throws Exception
{
boolean runRoot = true;
boolean waitFor = true;
- //android.os.Debug.waitForDebugger();
+ //redirectDNSResolvConf(); //not working yet
+ int torUid = context.getApplicationInfo().uid;
+
+ String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
+ StringBuilder script = new StringBuilder();
+
+ StringBuilder res = new StringBuilder();
+ int code = -1;
+
+ // Allow everything for Tor
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -m owner --uid-owner ");
+ script.append(torUid);
+ script.append(" -j ACCEPT");
+ script.append(" || exit\n");
+
+ String[] cmdAdd = {script.toString()};
+
+ code = TorServiceUtils.doShellCommand(cmdAdd, res, runRoot, waitFor);
+ String msg = res.toString();
+ TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
+
+
+ return code;
+ }
+
+
+
+ public static int setTransparentProxyingByApp(Context context, TorifiedApp[] apps) throws Exception
+ {
+
+ boolean runRoot = true;
+ boolean waitFor = true;
+
//redirectDNSResolvConf(); //not working yet
String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
-
- boolean ipTablesOld = false;
StringBuilder script = new StringBuilder();
@@ -145,14 +178,12 @@
int code = -1;
purgeIptables(context);
-
- script = new StringBuilder();
-
+
//build up array of shell cmds to execute under one root context
for (int i = 0; i < apps.length; i++)
{
- if (forceAll || apps[i].isTorified()) //if "Tor Everything" on or app is set to true
+ if (apps[i].isTorified()) //if app is set to true
{
if (apps[i].getUsername().equals(TorServiceConstants.TOR_APP_USERNAME))
@@ -170,14 +201,8 @@
script.append(" -m owner --uid-owner ");
script.append(apps[i].getUid());
script.append(" -m tcp --syn");
-
- if (ipTablesOld)
- script.append(" -j DNAT --to 127.0.0.1:");
- else
- script.append(" -j REDIRECT --to-ports ");
-
+ script.append(" -j REDIRECT --to-ports ");
script.append(TOR_TRANSPROXY_PORT);
-
script.append(" || exit\n");
//DNS
@@ -187,57 +212,37 @@
script.append(apps[i].getUid());
script.append(" -m udp --dport ");
script.append(STANDARD_DNS_PORT);
+ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_DNS_PORT);
+ script.append(" || exit\n");
- if (ipTablesOld)
- script.append(" -j DNAT --to 127.0.0.1:");
- else
- script.append(" -j REDIRECT --to-ports ");
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT -p tcp");
+ script.append(" -m owner --uid-owner ");
+ script.append(apps[i].getUid());
+ script.append(" -m tcp --dport ");
+ script.append(TOR_TRANSPROXY_PORT);
+ script.append(" -j ACCEPT");
+ script.append(" || exit\n");
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT -p udp");
+ script.append(" -m owner --uid-owner ");
+ script.append(apps[i].getUid());
+ script.append(" -m udp --dport ");
script.append(TOR_DNS_PORT);
-
+ script.append(" -j ACCEPT");
script.append(" || exit\n");
+
+ script.append(ipTablesPath);
+ script.append(" -t filter -A OUTPUT -m owner --uid-owner ");
+ script.append(apps[i].getUid());
+ script.append(" -j DROP"); //drop all other packets as Tor won't handle them
+ script.append(" || exit\n");
- if (ipTablesOld) //for some reason this doesn't work on iptables 1.3.7
- {
- script.append(ipTablesPath);
- script.append(" -t nat");
- script.append(" -A OUTPUT -m owner --uid-owner ");
- script.append(apps[i].getUid());
- script.append(" -j DROP");
- script.append(" || exit\n");
- }
- else
- {
- script.append(ipTablesPath);
- script.append(" -t filter");
- script.append(" -A OUTPUT -p tcp");
- script.append(" -m owner --uid-owner ");
- script.append(apps[i].getUid());
- script.append(" -m tcp --dport ");
- script.append(TOR_TRANSPROXY_PORT);
- script.append(" -j ACCEPT");
- script.append(" || exit\n");
-
- script.append(ipTablesPath);
- script.append(" -t filter");
- script.append(" -A OUTPUT -p udp");
- script.append(" -m owner --uid-owner ");
- script.append(apps[i].getUid());
- script.append(" -m udp --dport ");
- script.append(TOR_DNS_PORT);
- script.append(" -j ACCEPT");
- script.append(" || exit\n");
-
- script.append(ipTablesPath);
- script.append(" -t filter -A OUTPUT -m owner --uid-owner ");
- script.append(apps[i].getUid());
- script.append(" -j DROP"); //drop all other packets as Tor won't handle them
- script.append(" || exit\n");
-
- }
-
-
}
}
@@ -260,20 +265,13 @@
//String baseDir = context.getDir("bin",0).getAbsolutePath() + '/';
String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
-
- boolean ipTablesOld = false;
StringBuilder script = new StringBuilder();
StringBuilder res = new StringBuilder();
int code = -1;
-
- String[] cmdFlush = {script.toString()};
- code = TorServiceUtils.doShellCommand(cmdFlush, res, true, true);
- //String msg = res.toString(); //get stdout from command
+ purgeIptables(context);
- script = new StringBuilder();
-
//TCP
//iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $srcPortNumber -j REDIRECT --to-port $dstPortNumbe
@@ -283,14 +281,8 @@
script.append(" --dport ");
script.append(port);
//script.append(" -m tcp --syn");
-
- if (ipTablesOld)
- script.append(" -j DNAT --to 127.0.0.1:");
- else
- script.append(" -j REDIRECT --to-ports ");
-
+ script.append(" -j REDIRECT --to-ports ");
script.append(TOR_TRANSPROXY_PORT);
-
script.append(" || exit\n");
script.append(ipTablesPath);
@@ -298,14 +290,8 @@
script.append(" -A OUTPUT -p udp");
script.append(" --dport ");
script.append(port);
-
- if (ipTablesOld)
- script.append(" -j DNAT --to 127.0.0.1:");
- else
- script.append(" -j REDIRECT --to-ports ");
-
+ script.append(" -j REDIRECT --to-ports ");
script.append(TOR_TRANSPROXY_PORT);
-
script.append(" || exit\n");
//DNS
@@ -314,24 +300,135 @@
script.append(" -A OUTPUT -p udp ");
script.append(" -m udp --dport ");
script.append(STANDARD_DNS_PORT);
+ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_DNS_PORT);
+ script.append(" || exit\n");
- if (ipTablesOld)
- script.append(" -j DNAT --to 127.0.0.1:");
- else
- script.append(" -j REDIRECT --to-ports ");
+
+ String[] cmdAdd = {script.toString()};
+ code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
+ String msg = res.toString();
+ TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
+ return code;
+ }
+
+ public static int setTransparentProxyingAll(Context context) throws Exception
+ {
+ boolean runRoot = true;
+ boolean waitFor = true;
+
+ //redirectDNSResolvConf(); //not working yet
+
+ String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
+
+ StringBuilder script = new StringBuilder();
+
+ StringBuilder res = new StringBuilder();
+ int code = -1;
+
+ purgeIptables(context);
+
+ int torUid = context.getApplicationInfo().uid;
+
+ // Set up port redirection
+ script.append(ipTablesPath);
+ script.append(" -t nat");
+ script.append(" -A OUTPUT -p tcp");
+ script.append(" -m owner ! --uid-owner ");
+ script.append(torUid);
+ script.append(" -m tcp --syn");
+ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_TRANSPROXY_PORT);
+ script.append(" || exit\n");
+
+ // Same for DNS
+ script.append(ipTablesPath);
+ script.append(" -t nat");
+ script.append(" -A OUTPUT -p udp -m owner ! --uid-owner ");
+ script.append(torUid);
+ script.append(" -m udp --dport ");
+ script.append(STANDARD_DNS_PORT);
+ script.append(" -j REDIRECT --to-ports ");
script.append(TOR_DNS_PORT);
+ script.append(" || exit\n");
+ // Allow packets to localhost (contains all the port-redirected ones)
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -p tcp");
+ script.append(" -d 127.0.0.1");
+ script.append(" -j ACCEPT");
script.append(" || exit\n");
+ // Allow loopback
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -p tcp");
+ script.append(" -o lo");
+ script.append(" -j ACCEPT");
+ script.append(" || exit\n");
+
+ // Allow everything for Tor
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -m owner --uid-owner ");
+ script.append(torUid);
+ script.append(" -j ACCEPT");
+ script.append(" || exit\n");
+
+ if (TorService.ENABLE_DEBUG_LOG)
+ {
+ //XXX: Comment the following rules for non-debug builds
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -p udp");
+ script.append(" --dport ");
+ script.append(STANDARD_DNS_PORT);
+ script.append(" -j LOG");
+ script.append(" --log-prefix='ORBOT_DNSLEAK_PROTECTION'");
+ script.append(" --log-uid");
+ script.append(" || exit\n");
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -p tcp");
+ script.append(" -j LOG");
+ script.append(" --log-prefix='ORBOT_TCPLEAK_PROTECTION'");
+ script.append(" --log-uid");
+ script.append(" || exit\n");
+ }
+
+ // Reject DNS that is not from Tor (order is important - first matched rule counts!)
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -p udp");
+ script.append(" --dport ");
+ script.append(STANDARD_DNS_PORT);
+ script.append(" -j REJECT");
+ script.append(" || exit\n");
+
+ // Reject all other outbound TCP packets
+ script.append(ipTablesPath);
+ script.append(" -t filter");
+ script.append(" -A OUTPUT");
+ script.append(" -p tcp");
+ script.append(" -j REJECT");
+ script.append(" || exit\n");
+
+ String[] cmdAdd = {script.toString()};
- String[] cmdAdd = {script.toString()};
- code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
+ code = TorServiceUtils.doShellCommand(cmdAdd, res, runRoot, waitFor);
String msg = res.toString();
TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
- return code;
- }
+ return code;
+ }
}
1
0

r24712: {} added in original submitted patches for posterity (in projects/android/trunk/Orbot: . patches patches/orbot-patch-sporkbomb-20110501 patches/update_GibberBot_info)
by Nathan Freitas 03 May '11
by Nathan Freitas 03 May '11
03 May '11
Author: n8fr8
Date: 2011-05-03 05:54:24 +0000 (Tue, 03 May 2011)
New Revision: 24712
Added:
projects/android/trunk/Orbot/patches/
projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/
projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/Part 1.4
projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot-real_transproxy_all-use_only_new_iptables.patch
projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot_leak_report
projects/android/trunk/Orbot/patches/update_GibberBot_info/
projects/android/trunk/Orbot/patches/update_GibberBot_info/ic_launcher_gibberbot.png
projects/android/trunk/Orbot/patches/update_GibberBot_info/update_GibberBot_info.diff
Log:
added in original submitted patches for posterity
Added: projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/Part 1.4
===================================================================
--- projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/Part 1.4 (rev 0)
+++ projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/Part 1.4 2011-05-03 05:54:24 UTC (rev 24712)
@@ -0,0 +1,11 @@
+_______________________________________________
+Guardian-dev mailing list
+
+Post: Guardian-dev(a)lists.mayfirst.org
+List info: https://lists.mayfirst.org/mailman/listinfo/guardian-dev
+
+To Unsubscribe
+ Send email to: Guardian-dev-unsubscribe(a)lists.mayfirst.org
+ Or visit: https://lists.mayfirst.org/mailman/options/guardian-dev/nathan%40guardianpr…
+
+You are subscribed as: nathan(a)guardianproject.info
Added: projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot-real_transproxy_all-use_only_new_iptables.patch
===================================================================
--- projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot-real_transproxy_all-use_only_new_iptables.patch (rev 0)
+++ projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot-real_transproxy_all-use_only_new_iptables.patch 2011-05-03 05:54:24 UTC (rev 24712)
@@ -0,0 +1,390 @@
+Index: src/org/torproject/android/service/TorService.java
+===================================================================
+--- src/org/torproject/android/service/TorService.java (revision 24697)
++++ src/org/torproject/android/service/TorService.java (working copy)
+@@ -710,10 +710,36 @@
+
+ if (enableTransparentProxy)
+ {
+- showAlert("Status", "Setting up transparent proxying...");
+-
+- //TorTransProxy.setDNSProxying();
+- int code = TorTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this),transProxyAll);
++ //TODO: Find a nice place for the next (commented) line
++ //TorTransProxy.setDNSProxying();
++
++ int code = 0; // Default state is "okay"
++
++ if(transProxyPortFallback)
++ {
++ showAlert("Status", "Setting up port-based transparent proxying...");
++ StringTokenizer st = new StringTokenizer(portProxyList, ",");
++ int status = code;
++ while (st.hasMoreTokens())
++ {
++ status = TorTransProxy.setTransparentProxyingByPort(this, Integer.parseInt(st.nextToken()));
++ if(status != 0)
++ code = status;
++ }
++ }
++ else
++ {
++ if(transProxyAll)
++ {
++ showAlert("Status", "Setting up full transparent proxying...");
++ code = TorTransProxy.setTransparentProxyingAll(this);
++ }
++ else
++ {
++ showAlert("Status", "Setting up app-based transparent proxying...");
++ code = TorTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this),transProxyAll);
++ }
++ }
+
+ TorService.logMessage ("TorTransProxy resp code: " + code);
+
+@@ -725,17 +751,7 @@
+ {
+ showAlert("Status", "WARNING: error starting transparent proxying!");
+ }
+-
+- //this is for Androids w/o owner module support as a circumvention only fallback
+- if (transProxyPortFallback)
+- {
+- StringTokenizer st = new StringTokenizer(portProxyList, ",");
+-
+- while (st.hasMoreTokens())
+- TorTransProxy.setTransparentProxyingByPort(this, Integer.parseInt(st.nextToken()));
+-
+- }
+-
++
+ return true;
+
+ }
+Index: src/org/torproject/android/service/TorTransProxy.java
+===================================================================
+--- src/org/torproject/android/service/TorTransProxy.java (revision 24697)
++++ src/org/torproject/android/service/TorTransProxy.java (working copy)
+@@ -136,8 +136,6 @@
+ //redirectDNSResolvConf(); //not working yet
+
+ String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
+-
+- boolean ipTablesOld = false;
+
+ StringBuilder script = new StringBuilder();
+
+@@ -145,14 +143,12 @@
+ int code = -1;
+
+ purgeIptables(context);
+-
+- script = new StringBuilder();
+-
++
+ //build up array of shell cmds to execute under one root context
+ for (int i = 0; i < apps.length; i++)
+ {
+
+- if (forceAll || apps[i].isTorified()) //if "Tor Everything" on or app is set to true
++ if (apps[i].isTorified()) //if app is set to true
+ {
+
+ if (apps[i].getUsername().equals(TorServiceConstants.TOR_APP_USERNAME))
+@@ -170,14 +166,8 @@
+ script.append(" -m owner --uid-owner ");
+ script.append(apps[i].getUid());
+ script.append(" -m tcp --syn");
+-
+- if (ipTablesOld)
+- script.append(" -j DNAT --to 127.0.0.1:");
+- else
+- script.append(" -j REDIRECT --to-ports ");
+-
++ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_TRANSPROXY_PORT);
+-
+ script.append(" || exit\n");
+
+ //DNS
+@@ -187,57 +177,37 @@
+ script.append(apps[i].getUid());
+ script.append(" -m udp --dport ");
+ script.append(STANDARD_DNS_PORT);
++ script.append(" -j REDIRECT --to-ports ");
++ script.append(TOR_DNS_PORT);
++ script.append(" || exit\n");
+
+- if (ipTablesOld)
+- script.append(" -j DNAT --to 127.0.0.1:");
+- else
+- script.append(" -j REDIRECT --to-ports ");
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT -p tcp");
++ script.append(" -m owner --uid-owner ");
++ script.append(apps[i].getUid());
++ script.append(" -m tcp --dport ");
++ script.append(TOR_TRANSPROXY_PORT);
++ script.append(" -j ACCEPT");
++ script.append(" || exit\n");
+
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT -p udp");
++ script.append(" -m owner --uid-owner ");
++ script.append(apps[i].getUid());
++ script.append(" -m udp --dport ");
+ script.append(TOR_DNS_PORT);
+-
++ script.append(" -j ACCEPT");
+ script.append(" || exit\n");
++
++ script.append(ipTablesPath);
++ script.append(" -t filter -A OUTPUT -m owner --uid-owner ");
++ script.append(apps[i].getUid());
++ script.append(" -j DROP"); //drop all other packets as Tor won't handle them
++ script.append(" || exit\n");
+
+
+- if (ipTablesOld) //for some reason this doesn't work on iptables 1.3.7
+- {
+- script.append(ipTablesPath);
+- script.append(" -t nat");
+- script.append(" -A OUTPUT -m owner --uid-owner ");
+- script.append(apps[i].getUid());
+- script.append(" -j DROP");
+- script.append(" || exit\n");
+- }
+- else
+- {
+- script.append(ipTablesPath);
+- script.append(" -t filter");
+- script.append(" -A OUTPUT -p tcp");
+- script.append(" -m owner --uid-owner ");
+- script.append(apps[i].getUid());
+- script.append(" -m tcp --dport ");
+- script.append(TOR_TRANSPROXY_PORT);
+- script.append(" -j ACCEPT");
+- script.append(" || exit\n");
+-
+- script.append(ipTablesPath);
+- script.append(" -t filter");
+- script.append(" -A OUTPUT -p udp");
+- script.append(" -m owner --uid-owner ");
+- script.append(apps[i].getUid());
+- script.append(" -m udp --dport ");
+- script.append(TOR_DNS_PORT);
+- script.append(" -j ACCEPT");
+- script.append(" || exit\n");
+-
+- script.append(ipTablesPath);
+- script.append(" -t filter -A OUTPUT -m owner --uid-owner ");
+- script.append(apps[i].getUid());
+- script.append(" -j DROP"); //drop all other packets as Tor won't handle them
+- script.append(" || exit\n");
+-
+- }
+-
+-
+ }
+ }
+
+@@ -260,20 +230,13 @@
+
+ //String baseDir = context.getDir("bin",0).getAbsolutePath() + '/';
+ String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
+-
+- boolean ipTablesOld = false;
+
+ StringBuilder script = new StringBuilder();
+
+ StringBuilder res = new StringBuilder();
+ int code = -1;
+-
+- String[] cmdFlush = {script.toString()};
+- code = TorServiceUtils.doShellCommand(cmdFlush, res, true, true);
+- //String msg = res.toString(); //get stdout from command
++ purgeIptables(context);
+
+- script = new StringBuilder();
+-
+ //TCP
+ //iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $srcPortNumber -j REDIRECT --to-port $dstPortNumbe
+
+@@ -283,14 +246,8 @@
+ script.append(" --dport ");
+ script.append(port);
+ //script.append(" -m tcp --syn");
+-
+- if (ipTablesOld)
+- script.append(" -j DNAT --to 127.0.0.1:");
+- else
+- script.append(" -j REDIRECT --to-ports ");
+-
++ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_TRANSPROXY_PORT);
+-
+ script.append(" || exit\n");
+
+ script.append(ipTablesPath);
+@@ -298,14 +255,8 @@
+ script.append(" -A OUTPUT -p udp");
+ script.append(" --dport ");
+ script.append(port);
+-
+- if (ipTablesOld)
+- script.append(" -j DNAT --to 127.0.0.1:");
+- else
+- script.append(" -j REDIRECT --to-ports ");
+-
++ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_TRANSPROXY_PORT);
+-
+ script.append(" || exit\n");
+
+ //DNS
+@@ -314,24 +265,134 @@
+ script.append(" -A OUTPUT -p udp ");
+ script.append(" -m udp --dport ");
+ script.append(STANDARD_DNS_PORT);
++ script.append(" -j REDIRECT --to-ports ");
++ script.append(TOR_DNS_PORT);
++ script.append(" || exit\n");
+
+- if (ipTablesOld)
+- script.append(" -j DNAT --to 127.0.0.1:");
+- else
+- script.append(" -j REDIRECT --to-ports ");
++
++ String[] cmdAdd = {script.toString()};
++ code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
++ String msg = res.toString();
++ TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
+
++ return code;
++ }
++
++ public static int setTransparentProxyingAll(Context context) throws Exception {
++ boolean runRoot = true;
++ boolean waitFor = true;
++
++ //android.os.Debug.waitForDebugger();
++
++ //redirectDNSResolvConf(); //not working yet
++
++ String ipTablesPath = new File(context.getDir("bin", 0),"iptables").getAbsolutePath();
++
++ StringBuilder script = new StringBuilder();
++
++ StringBuilder res = new StringBuilder();
++ int code = -1;
++
++ purgeIptables(context);
++
++ int torUid = context.getApplicationInfo().uid;
++
++ // Set up port redirection
++ script.append(ipTablesPath);
++ script.append(" -t nat");
++ script.append(" -A OUTPUT -p tcp");
++ script.append(" -m owner ! --uid-owner ");
++ script.append(torUid);
++ script.append(" -m tcp --syn");
++ script.append(" -j REDIRECT --to-ports ");
++ script.append(TOR_TRANSPROXY_PORT);
++ script.append(" || exit\n");
++
++ // Same for DNS
++ script.append(ipTablesPath);
++ script.append(" -t nat");
++ script.append(" -A OUTPUT -p udp -m owner ! --uid-owner ");
++ script.append(torUid);
++ script.append(" -m udp --dport ");
++ script.append(STANDARD_DNS_PORT);
++ script.append(" -j REDIRECT --to-ports ");
+ script.append(TOR_DNS_PORT);
++ script.append(" || exit\n");
+
++ // Allow packets to localhost (contains all the port-redirected ones)
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -p tcp");
++ script.append(" -d 127.0.0.1");
++ script.append(" -j ACCEPT");
+ script.append(" || exit\n");
+
++ // Allow loopback
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -p tcp");
++ script.append(" -o lo");
++ script.append(" -j ACCEPT");
++ script.append(" || exit\n");
++
++ // Allow everything for Tor
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -m owner --uid-owner ");
++ script.append(torUid);
++ script.append(" -j ACCEPT");
++ script.append(" || exit\n");
++
++ //XXX: Comment the following rules for non-debug builds
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -p udp");
++ script.append(" --dport ");
++ script.append(STANDARD_DNS_PORT);
++ script.append(" -j LOG");
++ script.append(" --log-prefix='ORBOT_DNSLEAK_PROTECTION'");
++ script.append(" --log-uid");
++ script.append(" || exit\n");
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -p tcp");
++ script.append(" -j LOG");
++ script.append(" --log-prefix='ORBOT_TCPLEAK_PROTECTION'");
++ script.append(" --log-uid");
++ script.append(" || exit\n");
++
++
++ // Reject DNS that is not from Tor (order is important - first matched rule counts!)
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -p udp");
++ script.append(" --dport ");
++ script.append(STANDARD_DNS_PORT);
++ script.append(" -j REJECT");
++ script.append(" || exit\n");
++
++ // Reject all other outbound TCP packets
++ script.append(ipTablesPath);
++ script.append(" -t filter");
++ script.append(" -A OUTPUT");
++ script.append(" -p tcp");
++ script.append(" -j REJECT");
++ script.append(" || exit\n");
++
++ String[] cmdAdd = {script.toString()};
+
+- String[] cmdAdd = {script.toString()};
+- code = TorServiceUtils.doShellCommand(cmdAdd, res, true, true);
++ code = TorServiceUtils.doShellCommand(cmdAdd, res, runRoot, waitFor);
+ String msg = res.toString();
+ TorService.logMessage(cmdAdd[0] + ";errCode=" + code + ";resp=" + msg);
+
+- return code;
+- }
++ return code;
++ }
+
+
+ }
Added: projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot_leak_report
===================================================================
--- projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot_leak_report (rev 0)
+++ projects/android/trunk/Orbot/patches/orbot-patch-sporkbomb-20110501/orbot_leak_report 2011-05-03 05:54:24 UTC (rev 24712)
@@ -0,0 +1,110 @@
+<4>[ 115.319671] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=9997 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK URGP=0 UID=10035 GID=10035
+<4>[ 115.482788] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=9998 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK URGP=0 UID=10035 GID=10035
+<4>[ 116.037658] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=9999 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK URGP=0 UID=10035 GID=10035
+<4>[ 116.699127] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10000 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10035 GID=10035
+<4>[ 116.724517] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10001 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0 UID=10035 GID=10035
+<4>[ 116.922515] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10002 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 117.330810] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10003 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 118.150726] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10004 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 118.903320] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10005 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 119.310729] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10006 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 120.130737] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10007 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 121.770690] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10008 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 122.695465] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10009 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 123.100708] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10010 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 123.920684] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10011 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 125.565673] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10012 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 128.840789] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10013 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 130.366333] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10014 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 130.785339] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10015 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 131.600799] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10016 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 132.835144] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50247 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 133.240753] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10017 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 133.410705] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50248 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 133.443481] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50249 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 134.031341] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50250 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 134.782196] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50251 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 135.360778] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50252 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 136.520782] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10018 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 136.526306] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50253 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 137.334716] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50254 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 137.915832] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50255 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 139.075378] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50256 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 140.435913] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10019 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 140.850799] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10020 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 141.395019] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50257 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 141.675140] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10021 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 142.455352] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50258 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 143.030792] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50259 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 143.310852] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10022 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 144.190734] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50260 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 146.510803] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50261 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 146.590789] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10023 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 151.150726] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50262 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 151.166290] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10024 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 151.570739] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10025 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 152.390686] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10026 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 152.694427] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50263 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 153.270721] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50264 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 154.030731] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10027 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 154.430694] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50265 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 156.750701] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50266 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 157.310699] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10028 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 160.383117] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10029 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 160.790832] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10030 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 161.390716] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50267 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 161.610717] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10031 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 163.250701] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10032 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 166.531494] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10033 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 170.670715] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50268 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 170.842285] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10034 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 171.250732] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10035 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 172.070800] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10036 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 173.309783] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50269 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 173.710784] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10037 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 173.880828] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50270 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 175.040710] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50271 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 176.990692] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10038 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 177.360687] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50272 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 181.682952] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10039 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 182.000701] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50273 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 182.090698] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10040 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 182.910797] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10041 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 184.550689] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10042 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 187.830749] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10043 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 191.280700] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50274 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 193.917053] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10044 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 194.330749] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10045 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 195.150695] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10046 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 196.790679] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10047 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 200.070709] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10048 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 201.567718] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10049 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 201.970703] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10050 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 202.790771] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10051 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 204.430816] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10052 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 207.710693] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10053 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 209.840789] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50275 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 212.362884] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10054 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 212.770812] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10055 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 213.590698] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10056 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 215.235809] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10057 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 217.285766] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=261 TOS=0x00 PREC=0x00 TTL=64 ID=50276 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 217.860687] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50277 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 218.510803] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10058 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 219.020721] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50278 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 220.840667] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
+<4>[ 220.842559] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
+<4>[ 220.844512] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
+<4>[ 221.340820] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50279 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 221.478881] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=91 TOS=0x00 PREC=0x00 TTL=64 ID=10059 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 221.890777] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10060 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 221.898010] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
+<4>[ 222.710754] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10061 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 224.350677] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10062 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 225.617523] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.101 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=40218 DPT=80 WINDOW=0 RES=0x00 RST URGP=0
+<4>[ 225.980743] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=87.238.52.70 LEN=249 TOS=0x00 PREC=0x00 TTL=64 ID=50280 DF PROTO=TCP SPT=53939 DPT=993 WINDOW=32044 RES=0x00 ACK PSH URGP=0 UID=10053 GID=10053
+<4>[ 227.630798] ORBOT_TCPLEAK_PROTECTIONIN= OUT=eth0 SRC=192.168.0.14 DST=74.125.39.139 LEN=79 TOS=0x00 PREC=0x00 TTL=64 ID=10063 DF PROTO=TCP SPT=53388 DPT=443 WINDOW=32044 RES=0x00 ACK PSH FIN URGP=0
+<4>[ 241.522155] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=20341 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
+<4>[ 241.792358] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
+<4>[ 242.362335] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
+<4>[ 243.452331] ORBOT_TCPLEAK_PROTECTIONIN= OUT=rmnet0 SRC=46.206.239.134 DST=84.22.122.5 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=49138 DPT=9001 WINDOW=32044 RES=0x00 ACK URGP=0
Added: projects/android/trunk/Orbot/patches/update_GibberBot_info/ic_launcher_gibberbot.png
===================================================================
(Binary files differ)
Property changes on: projects/android/trunk/Orbot/patches/update_GibberBot_info/ic_launcher_gibberbot.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: projects/android/trunk/Orbot/patches/update_GibberBot_info/update_GibberBot_info.diff
===================================================================
--- projects/android/trunk/Orbot/patches/update_GibberBot_info/update_GibberBot_info.diff (rev 0)
+++ projects/android/trunk/Orbot/patches/update_GibberBot_info/update_GibberBot_info.diff 2011-05-03 05:54:24 UTC (rev 24712)
@@ -0,0 +1,285 @@
+Index: res/values-ca/strings.xml
+===================================================================
+--- res/values-ca/strings.xml (revision 24406)
++++ res/values-ca/strings.xml (working copy)
+@@ -97,7 +97,7 @@
+
+ <string name="wizard_tips_tricks">Aplicacions per a usar-se amb Orbot</string>
+ <string name="wizard_tips_msg">T\'animem a descarregar-te & utilitza aplicacions que sàpiguen com connectar-se directament a Orbot. Fes clic als botons de sota per instal·lar.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Client de missatgeria instantània segura per a Android</string>
++ <string name="wizard_tips_otrchat">GibberBot - Client de missatgeria instantània segura per a Android</string>
+ <string name="wizard_tips_orweb">ORWEB (Només Android 1.x) - Navegador dissenyat per la privacitat & per a Orbot</string>
+ <string name="wizard_tips_proxy">Coniguració de Proxy - Aprèn a configurar aplicacions per a què funcionin amb Orbot</string>
+
+@@ -115,7 +115,7 @@
+ <string name="wizard_final">Orbot és a punt!</string>
+ <string name="wizard_final_msg">Centenars de milers de persones arreu del món utilitzen Tor per un gran ventall de raons: periodistes i blocaires, treballadors pels drets humans, agents de l\'autoritat, soldats, corporacions, ciutadans de règims opressors, i ciutadans qualssevol... I ara tu també ho pots fer!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/drawable/icon_otrchat.png
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: res/drawable/ic_launcher_gibberbot.png
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: res/drawable/ic_launcher_gibberbot.png
+___________________________________________________________________
+Added: svn:mime-type
+ + application/octet-stream
+
+Index: res/values-fa/strings.xml
+===================================================================
+--- res/values-fa/strings.xml (revision 24406)
++++ res/values-fa/strings.xml (working copy)
+@@ -95,7 +95,7 @@
+
+ <string name="wizard_tips_tricks">اپلیکیشن هایی که برای اوربات تنظیم شده اند</string>
+ <string name="wizard_tips_msg">توصیه می کنیم داون لود و فعال کنید؛ اپلیکیشن هایی را استفاده کنید که مستقیم به اوربات وصل می شوند. دکمه های زیر را فشار دهید تا نصب شود. </string>
+- <string name="wizard_tips_otrchat">OTRCHAT - کاربر ایمن انتقال پیام فوری برای آندروید</string>
++ <string name="wizard_tips_otrchat">GibberBot - کاربر ایمن انتقال پیام فوری برای آندروید</string>
+ <string name="wizard_tips_orweb">ORWEB (فقط آندروید 1.x) - مرورگر طراحی شده برای حفظ حریم خصوصی و افزونساز اوربات</string>
+ <string name="wizard_tips_proxy">تنظیمات پروکسی - یادگیری تنظیم اپلیکیشن ها برای کار با اوربات</string>
+
+@@ -105,7 +105,7 @@
+ <string name="wizard_final">اوربات آماده استفاده میباشد!</string>
+ <string name="wizard_final_msg">صدها هزار نفر در سراسر جهان به دلایل گوناگون از Tor استفاده می کنند: روزنامه نویسها و بلاگرها، کارکنان حقوق بشر، ماموران انتظامی، سربازان، شرکتها، شهروندان دولتهای سرکوبگر، و شهروندان عادی، و حالا شما نیز آماده استفاده از آن هستید!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-ru/strings.xml
+===================================================================
+--- res/values-ru/strings.xml (revision 24406)
++++ res/values-ru/strings.xml (working copy)
+@@ -95,7 +95,7 @@
+
+ <string name="wizard_tips_tricks">Orbot-задействованные приложения</string>
+ <string name="wizard_tips_msg">Мы советуем вам скачать и использовать приложения, которые умеют работать напрямую через Orbot. Нажмите на кнопки ниже, чтобы запустить процесс установки.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Обезопасте обмен мгновенными сообщениями для клиентов в Android</string>
++ <string name="wizard_tips_otrchat">GibberBot - Обезопасте обмен мгновенными сообщениями для клиентов в Android</string>
+ <string name="wizard_tips_orweb">ORWEB (Только для версии Android 1.x) - Браузер, разработанный для обеспечения безопасности и для Orbot</string>
+ <string name="wizard_tips_proxy">Настройки прокси - узнайте как настроить приложения для работы с Orbot</string>
+
+@@ -109,7 +109,7 @@
+ <string name="wizard_final">Программа Orbot готова к использованию!</string>
+ <string name="wizard_final_msg">Сотни тысяч людей по всему миру используют Tor по различным причинам: журналисты и блоггеры, активисты организаций, выступающих в защиту прав человека, судебные исполнители, солдаты, корпорации, граждане стран с репрессивным режимом, и простые люди... а теперь готовы и вы!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-de/strings.xml
+===================================================================
+--- res/values-de/strings.xml (revision 24406)
++++ res/values-de/strings.xml (working copy)
+@@ -97,7 +97,7 @@
+
+ <string name="wizard_tips_tricks">Programme, für die Orbot aktiviert ist</string>
+ <string name="wizard_tips_msg">Wir raten Ihnen Programme herunterzuladen & zu nutzen, die wissen, wie sie sich direkt mit Orbot verbinden. Klicken Sie zum Installieren auf den Knopf unten.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Ein sicheres Instant-Messaging-Programm für Android</string>
++ <string name="wizard_tips_otrchat">GibberBot - Ein sicheres Instant-Messaging-Programm für Android</string>
+ <string name="wizard_tips_orweb">ORWEB (Nur Android 1.x) - Ein für Privatsphäre & Orbot entworfener Browser</string>
+ <string name="wizard_tips_proxy">Proxy-Einstellungen - Lernen Sie Anwendungen so zu konfigurieren, dass sie mit Orbot zusammenarbeiten.</string>
+
+@@ -115,7 +115,7 @@
+ <string name="wizard_final">Orbot ist bereit!</string>
+ <string name="wizard_final_msg">Hunderttausende Menschen auf der ganzen Welt nutzen Tor aus einer Vielzahl von Gründen: Journalisten und Blogger, Menschenrechtsaktivisten, Strafverfolgungsbehörden, Soldaten, Unternehmen, Bürger repressiver Regime und ganz normale Menschen... und sind Sie ebenfalls bereit!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values/strings.xml
+===================================================================
+--- res/values/strings.xml (revision 24406)
++++ res/values/strings.xml (working copy)
+@@ -94,7 +94,7 @@
+
+ <string name="wizard_tips_tricks">Orbot-enabled Apps</string>
+ <string name="wizard_tips_msg">We encourage you to download & use apps that know how to connect directly to Orbot. Click on the buttons below to install.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Secure instant messaging client for Android</string>
++ <string name="wizard_tips_otrchat">Gibberbot - Secure instant messaging client for Android</string>
+ <string name="wizard_tips_orweb">ORWEB (Android 1.x Only) - Browser designed for privacy & for Orbot</string>
+ <string name="wizard_tips_proxy">Proxy Settings - Learn how to configure apps to work with Orbot</string>
+
+@@ -108,7 +108,7 @@
+ <string name="wizard_final">Orbot is ready!</string>
+ <string name="wizard_final_msg">Hundreds of thousands of people around the world use Tor for a wide variety of reasons: journalists and bloggers, human rights workers, law enforcement officers, soldiers, corporations, citizens of repressive regimes, and just ordinary citizens... and now you are ready to, as well!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-ar/strings.xml
+===================================================================
+--- res/values-ar/strings.xml (revision 24406)
++++ res/values-ar/strings.xml (working copy)
+@@ -97,7 +97,7 @@
+
+ <string name="wizard_tips_tricks">تطبيقات مهيئة لأوربوت</string>
+ <string name="wizard_tips_msg">نشجعكم على تحميل واستخدام التطبيقات التي تعرف كيفية الاتصال مباشرة بأوربوت. اضغط على الأزرار في الأسفل للتثبيت.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - عميل التراسل الفوري الآمن للأندرويد</string>
++ <string name="wizard_tips_otrchat">GibberBot - عميل التراسل الفوري الآمن للأندرويد</string>
+ <string name="wizard_tips_orweb">ORWEB (أندرويد 1.x فقط) - متصفح مصمّم للخصوصية لأوربوت </string>
+ <string name="wizard_tips_proxy">إعدادات الوكيل - تعلم كيفية تكوين التطبيقات لتعمل مع أوربوت</string>
+
+@@ -115,7 +115,7 @@
+ <string name="wizard_final">أوربوت جاهز!</string>
+ <string name="wizard_final_msg">مئات الآلاف من الناس في جميع أنحاء العالم يستخدمون تور لأسباب عديدة: الصحفيين والمدونين، والعاملين في مجال حقوق الإنسان، والجنود والشركات والمواطنين من الأنظمة القمعية، والمواطنين العاديين ... والآن أنت مستعد لأن تستخدمه كذلك!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-es/strings.xml
+===================================================================
+--- res/values-es/strings.xml (revision 24406)
++++ res/values-es/strings.xml (working copy)
+@@ -97,7 +97,7 @@
+
+ <string name="wizard_tips_tricks">Aplicaciones activas en Orbot</string>
+ <string name="wizard_tips_msg">Le invitamos a descargar y utilizar aplicaciones que saben cómo conectarse directamente a Orbot. Haga clic en los botones a continuación para Instalar.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Cliente de mensajería instantánea seguro para Android</string>
++ <string name="wizard_tips_otrchat">GibberBot - Cliente de mensajería instantánea seguro para Android</string>
+ <string name="wizard_tips_orweb">ORWEB (Sólo Android 1.x) - Navegador diseñado para la privacidad y para Orbot</string>
+ <string name="wizard_tips_proxy">Configuraciones Proxy - Aprenda cómo configurar aplicaciones para que trabajen con Orbot</string>
+
+@@ -115,7 +115,7 @@
+ <string name="wizard_final">¡Orbot está listo!</string>
+ <string name="wizard_final_msg">Cientos de miles de personas alrededor del mundo usan Tor por una amplia variedad de razones: periodistas y bloggers, trabajadores de los derechos humanos, oficiales de policía, soldados, corporaciones, ciudadanos de regímenes represivos y ciudadanos ordinarios... ¡y ahora también lo estás!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-mk/strings.xml
+===================================================================
+--- res/values-mk/strings.xml (revision 24406)
++++ res/values-mk/strings.xml (working copy)
+@@ -95,7 +95,7 @@
+
+ <string name="wizard_tips_tricks">Орбот-вклучени апликации</string>
+ <string name="wizard_tips_msg">Ви препорачуваме да презимате и користите апликации кои што знаат како директно да се поврзат со Орбот. Притиснете на копчињата подолу за инсталирање.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Безбеден клиент за инстант-пораки за Андроид</string>
++ <string name="wizard_tips_otrchat">GibberBot - Безбеден клиент за инстант-пораки за Андроид</string>
+ <string name="wizard_tips_orweb">ORWEB (само Андроид 1.x) - Браусер дизајниран за приватност и за Орбот</string>
+ <string name="wizard_tips_proxy">Подесувања на прокси - Научете како да ги конфигурирате апликациите да работат со Орбот</string>
+
+@@ -109,7 +109,7 @@
+ <string name="wizard_final">Орбот е спремен!</string>
+ <string name="wizard_final_msg">Стотици илјади луѓе низ целиот Свет го користат Тор од многу различни причини: новинари и блогери, борци за човекови права, полицајци, војници, корпорации, граѓани на репресивни режими, и обични граѓани... а сега и Вие сте спремин да го користите!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-nl/strings.xml
+===================================================================
+--- res/values-nl/strings.xml (revision 24406)
++++ res/values-nl/strings.xml (working copy)
+@@ -97,7 +97,7 @@
+
+ <string name="wizard_tips_tricks">Orbot-beschikbare Apps</string>
+ <string name="wizard_tips_msg">We raden u aan om te apps te downloaden welke zich zich automatisch verbinden met Orbot. Klik op de buttons hier beneden om te installeren.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Veilige instant message programma voor Android</string>
++ <string name="wizard_tips_otrchat">GibberBot - Veilige instant message programma voor Android</string>
+ <string name="wizard_tips_orweb">ORWEB (Alleen Android 1.x) - Browser gemaakt voor privacy & voor Orbot</string>
+ <string name="wizard_tips_proxy">Proxy Instellingen - Leer hoe u uw apps kunt configureren voor Orbot</string>
+
+@@ -114,7 +114,7 @@
+ <string name="wizard_final">Orbot is klaar!</string>
+ <string name="wizard_final_msg">Honderdduizenden verschillende mensen over de wereld gebruiken Tor, zoals: journalisten, bloggers, mensen rechten medewerkers, soldaten, bedrijven, burgers met onderdrukte religies, en natuurlijk normale mensen... En nu bent u ook klaar om te gaan!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/values-pl/strings.xml
+===================================================================
+--- res/values-pl/strings.xml (revision 24406)
++++ res/values-pl/strings.xml (working copy)
+@@ -95,7 +95,7 @@
+
+ <string name="wizard_tips_tricks">Aplikacje skonfigurowane dla Orbota</string>
+ <string name="wizard_tips_msg">Zachęcamy do pobierania i używania aplikacji, które wiedzą, jak łączyć się bezpośrednio z Orbotem. Kliknij na poniższe przyciski, by zainstalować.</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Bezpieczny klieny rozmów dla Androida</string>
++ <string name="wizard_tips_otrchat">GibberBot - Bezpieczny klieny rozmów dla Androida</string>
+ <string name="wizard_tips_orweb">ORWEB (tylko Android 1.x) - Przeglądarka zaprojektowana do prywatności i dla Orbota</string>
+ <string name="wizard_tips_proxy">Ustawienia Proxy - NDowiedz się, jak konfiguroać aplikacje do współpracy z Orbotem</string>
+
+@@ -109,7 +109,7 @@
+ <string name="wizard_final">Orbot jest gotowy!</string>
+ <string name="wizard_final_msg">Setki tysięcy ludzi na całym świecie używają Tora z różnych powodów: dziennikarze i blogerzy, działacze na rzecz praw człowieka, stróże prawa, żołnierze, korporacje, obywatele represyjnych reżimów i zwykli obywatele... teraz Ty też możesz!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: res/layout/layout_wizard_tips.xml
+===================================================================
+--- res/layout/layout_wizard_tips.xml (revision 24406)
++++ res/layout/layout_wizard_tips.xml (working copy)
+@@ -17,7 +17,7 @@
+
+ <TextView android:text="@string/wizard_tips_msg" android:layout_gravity="left" android:textColor="#ffffff" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
+
+-<Button android:text="@string/wizard_tips_otrchat" android:layout_gravity="left" android:drawableLeft="@drawable/icon_otrchat" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOtrchat" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
++<Button android:text="@string/wizard_tips_otrchat" android:layout_gravity="left" android:drawableLeft="@drawable/ic_launcher_gibberbot" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOtrchat" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
+
+ <Button android:text="@string/wizard_tips_orweb" android:drawableLeft="@drawable/icon_orweb" android:layout_marginTop="10px" android:id="@+id/WizardRootButtonInstallOrweb" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
+
+Index: res/values-zh/strings.xml
+===================================================================
+--- res/values-zh/strings.xml (revision 24406)
++++ res/values-zh/strings.xml (working copy)
+@@ -95,7 +95,7 @@
+
+ <string name="wizard_tips_tricks">可用 Orbot 的应用程序</string>
+ <string name="wizard_tips_msg">我们建议您下载和使用能直接连接到 Orbot 的应用程序。点击以下按钮安装。</string>
+- <string name="wizard_tips_otrchat">OTRCHAT - Android 上的安全即时消息客户端</string>
++ <string name="wizard_tips_otrchat">GibberBot - Android 上的安全即时消息客户端</string>
+ <string name="wizard_tips_orweb">ORWEB (仅 Android 1.x) - 着重隐私设计的浏览器</string>
+ <string name="wizard_tips_proxy">代理设置 - 学习如何配置应用程序使用 Orbot</string>
+
+@@ -108,7 +108,7 @@
+ <string name="wizard_final">Orbot 已就绪!</string>
+ <string name="wizard_final_msg">数以万计的各国人们因为各种原因使用 Tor:记者、人权工作者、法律工作者、士兵、公司、迫于实际情况使用的市民,当然也有普通的市民。现在你也即将成为其中的一员!</string>
+
+- <string name="otrchat_apk_url">https://guardianproject.info/getgibber</string>
++ <string name="otrchat_apk_url">market://search?q=pname:info.guardianproject.otr.app.im</string>
+ <string name="orweb_apk_url">https://guardianproject.info/getorweb</string>
+
+ <!-- END Welcome Wizard strings (DJH) -->
+Index: .classpath
+===================================================================
+--- .classpath (revision 24406)
++++ .classpath (working copy)
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <classpath>
+- <classpathentry kind="src" path="src"/>
+- <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="lib" path="libs/asocks.jar"/>
+ <classpathentry kind="lib" path="libs/jtorctrl.jar"/>
++ <classpathentry kind="src" path="src"/>
++ <classpathentry kind="src" path="gen"/>
+ <classpathentry kind="output" path="bin"/>
+ </classpath>
1
0

03 May '11
commit 175fde6c4a92e1b52f060ef82baf35bf7d722639
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon May 2 21:28:54 2011 -0700
Determining initial cmd with ctypes rather than ps
Using the ctypes argv rather than querying for our command via ps (thanks to
ioerror).
---
src/util/procname.py | 28 +++++++++++-----------------
1 files changed, 11 insertions(+), 17 deletions(-)
diff --git a/src/util/procname.py b/src/util/procname.py
index 14a82b8..97dc707 100644
--- a/src/util/procname.py
+++ b/src/util/procname.py
@@ -9,13 +9,10 @@
# argument replacement (ie, replace argv[0], argv[1], etc but with a string
# the same size).
-import os
import sys
import ctypes
import ctypes.util
-from util import sysTools
-
# flag for setting the process name, found in '/usr/include/linux/prctl.h'
PR_SET_NAME = 15
@@ -65,24 +62,21 @@ def _setArgv(processName):
if currentProcessName == None:
# Getting argv via...
# currentProcessName = " ".join(["python"] + sys.argv)
- #
+ #
# doesn't do the trick since this will miss interpretor arguments like...
# python -W ignore::DeprecationWarning myScript.py
#
- # hence simply getting an outside opinion of our command.
-
- psResults = sysTools.call("ps -p %i -o args" % os.getpid())
+ # Hence we're fetching this via our ctypes argv. Alternatively we could
+ # use ps, though this is less desirable:
+ # "ps -p %i -o args" % os.getpid()
- if len(psResults) == 2:
- # output looks like:
- # COMMAND
- # python ./src/starter.py
-
- currentProcessName = psResults[1]
- maxNameLength = len(currentProcessName)
+ args = []
+ for i in range(100):
+ if argc[i] == None: break
+ args.append(str(argc[i]))
- if not currentProcessName:
- raise IOError("unable to determine our process name")
+ currentProcessName = " ".join(args)
+ maxNameLength = len(currentProcessName)
if len(processName) > maxNameLength:
msg = "can't rename process to something longer than our initial name since this would overwrite memory used for the env"
@@ -93,7 +87,7 @@ def _setArgv(processName):
ctypes.memset(argc.contents, 0, zeroSize + 1) # null terminate the string's end
ctypes.memmove(argc.contents, processName, len(processName))
- currentProcessName = processName[:MAX_CHAR]
+ currentProcessName = processName
def _setPrctlName(processName):
"""
1
0

[torbrowser/master] add openssl 1.0.0d to the stable windows bundle too
by erinn@torproject.org 03 May '11
by erinn@torproject.org 03 May '11
03 May '11
commit 356249f03c314b334db8266220b5c9ee812f666b
Author: Erinn Clark <erinn(a)torproject.org>
Date: Mon May 2 03:01:04 2011 +0300
add openssl 1.0.0d to the stable windows bundle too
---
README | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/README b/README
index 277841a..ef0808e 100644
--- a/README
+++ b/README
@@ -5,7 +5,7 @@ Included applications
---------------------
Vidalia 0.2.12 (with Qt 4.6.2)
-Tor 0.2.1.30 (with libevent-2.0.10-stable, zlib-1.2.5 and openssl-0.9.8p)
+Tor 0.2.1.30 (with libevent-2.0.10-stable, zlib-1.2.5 and openssl-1.0.0d)
Polipo 1.0.4.1
FirefoxPortable 3.6.17
\_ Firefox 3.6.17
@@ -345,3 +345,4 @@ Changelog
Update Firefox to 3.6.17
Update Libevent to 2.0.10-stable
Update zlib to 1.2.5
+ Update OpenSSL to 1.0.0d
1
0

03 May '11
commit eb78be9beeee01dcf137e60559f5ac26c3fe2c13
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon May 2 21:04:17 2011 -0700
fix: Making the process name setter safer/better
fixes include:
- just using memset rather than maually filling with null chars
- using \0 arg dividers
- erroring out rather than clobber env (ie, refuse to use a process name longer than the original argv)
---
src/starter.py | 2 +-
src/util/procname.py | 25 ++++++++++++-------------
2 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/src/starter.py b/src/starter.py
index 365676c..5b73a73 100644
--- a/src/starter.py
+++ b/src/starter.py
@@ -392,7 +392,7 @@ if __name__ == '__main__':
try:
from util import procname
- procname.renameProcess("arm %s" % " ".join(sys.argv[1:]))
+ procname.renameProcess("arm\0%s" % "\0".join(sys.argv[1:]))
except: pass
cli.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
diff --git a/src/util/procname.py b/src/util/procname.py
index 7641c5a..14a82b8 100644
--- a/src/util/procname.py
+++ b/src/util/procname.py
@@ -19,10 +19,6 @@ from util import sysTools
# flag for setting the process name, found in '/usr/include/linux/prctl.h'
PR_SET_NAME = 15
-# Maximum number of characters we'll set the process name to. Evidently this
-# cap was simply chosen since it didn't cause a segfault for its author.
-MAX_CHAR = 1608
-
argc_t = ctypes.POINTER(ctypes.c_char_p)
Py_GetArgcArgv = ctypes.pythonapi.Py_GetArgcArgv
@@ -32,6 +28,7 @@ Py_GetArgcArgv.argtypes = [ctypes.POINTER(ctypes.c_int),
# tracks the last name we've changed the process to
currentProcessName = None
+maxNameLength = -1
def renameProcess(processName):
"""
@@ -53,7 +50,7 @@ def _setArgv(processName):
strcpy(argv[0], "new_name");
"""
- global currentProcessName
+ global currentProcessName, maxNameLength
argv = ctypes.c_int(0)
argc = argc_t()
@@ -66,7 +63,7 @@ def _setArgv(processName):
# for Jake's implementation on this.
if currentProcessName == None:
- # Using argv via...
+ # Getting argv via...
# currentProcessName = " ".join(["python"] + sys.argv)
#
# doesn't do the trick since this will miss interpretor arguments like...
@@ -82,18 +79,20 @@ def _setArgv(processName):
# python ./src/starter.py
currentProcessName = psResults[1]
+ maxNameLength = len(currentProcessName)
if not currentProcessName:
raise IOError("unable to determine our process name")
- # we need to fill extra space with null characters, otherwise the process
- # will end with a '?' when you run ps against it
- if len(currentProcessName) > len(processName):
- processName += "\0" * (len(currentProcessName) - len(processName))
+ if len(processName) > maxNameLength:
+ msg = "can't rename process to something longer than our initial name since this would overwrite memory used for the env"
+ raise IOError(msg)
+
+ # space we need to clear
+ zeroSize = max(len(currentProcessName), len(processName))
- size = min(len(processName), MAX_CHAR)
- ctypes.memset(argc.contents, 0, size + 1) # null terminate the string's end
- ctypes.memmove(argc.contents, processName, size)
+ ctypes.memset(argc.contents, 0, zeroSize + 1) # null terminate the string's end
+ ctypes.memmove(argc.contents, processName, len(processName))
currentProcessName = processName[:MAX_CHAR]
def _setPrctlName(processName):
1
0

r24711: {website} update to 0.2.2.25-alpha packages (website/trunk/include)
by Erinn Clark 03 May '11
by Erinn Clark 03 May '11
03 May '11
Author: erinn
Date: 2011-05-03 03:59:10 +0000 (Tue, 03 May 2011)
New Revision: 24711
Modified:
website/trunk/include/versions.wmi
Log:
update to 0.2.2.25-alpha packages
Modified: website/trunk/include/versions.wmi
===================================================================
--- website/trunk/include/versions.wmi 2011-05-02 18:06:34 UTC (rev 24710)
+++ website/trunk/include/versions.wmi 2011-05-03 03:59:10 UTC (rev 24711)
@@ -2,29 +2,29 @@
<define-tag version-alpha whitespace=delete>0.2.2.25-alpha</define-tag>
<define-tag version-win32-stable whitespace=delete>0.2.1.30</define-tag>
-<define-tag version-win32-alpha whitespace=delete>0.2.2.24-alpha</define-tag>
+<define-tag version-win32-alpha whitespace=delete>0.2.2.25-alpha</define-tag>
<define-tag version-win32-bundle-stable whitespace=delete>0.2.1.30</define-tag>
-<define-tag version-win32-bundle-alpha whitespace=delete>0.2.2.24-alpha</define-tag>
+<define-tag version-win32-bundle-alpha whitespace=delete>0.2.2.25-alpha</define-tag>
-<define-tag version-win32-bridge-bundle-alpha whitespace=delete>0.2.2.24-alpha-<version-vidalia-stable></define-tag>
+<define-tag version-win32-bridge-bundle-alpha whitespace=delete>0.2.2.25-alpha-<version-vidalia-stable></define-tag>
<define-tag version-osx-x86-bundle-stable whitespace=delete>0.2.1.30</define-tag>
-<define-tag version-osx-x86-bundle-alpha whitespace=delete>0.2.2.24-alpha</define-tag>
+<define-tag version-osx-x86-bundle-alpha whitespace=delete>0.2.2.25-alpha</define-tag>
<define-tag version-osx-ppc-bundle-stable whitespace=delete>0.2.1.30</define-tag>
-<define-tag version-osx-ppc-bundle-alpha whitespace=delete>0.2.2.24-alpha</define-tag>
+<define-tag version-osx-ppc-bundle-alpha whitespace=delete>0.2.2.25-alpha</define-tag>
<define-tag version-osx-x86-stable whitespace=delete>0.2.1.30</define-tag>
-<define-tag version-osx-x86-alpha whitespace=delete>0.2.2.24-alpha</define-tag>
+<define-tag version-osx-x86-alpha whitespace=delete>0.2.2.25-alpha</define-tag>
<define-tag version-osx-ppc-stable whitespace=delete>0.2.1.30</define-tag>
<define-tag version-osx-ppc-alpha whitespace=delete>0.2.2.24-alpha</define-tag>
-<define-tag version-torbrowserbundle whitespace=delete>1.3.23</define-tag>
+<define-tag version-torbrowserbundle whitespace=delete>1.3.24</define-tag>
<define-tag version-torbrowser-tor whitespace=delete>0.2.1.30</define-tag>
-<define-tag version-torbrowser-tor-components whitespace=delete>libevent-1.4.13, zlib-1.2.3, openssl-0.9.8p</define-tag>
-<define-tag version-torbrowser-firefox whitespace=delete>3.6.16</define-tag>
+<define-tag version-torbrowser-tor-components whitespace=delete>libevent-2.0.10-stable, zlib-1.2.5, openssl-1.0.0d</define-tag>
+<define-tag version-torbrowser-firefox whitespace=delete>3.6.17</define-tag>
<define-tag version-torbrowser-torbutton whitespace=delete>1.2.5</define-tag>
<define-tag version-torbrowser-polipo whitespace=delete>1.0.4.1</define-tag>
<define-tag version-torbrowser-pidgin whitespace=delete>2.7.5</define-tag>
@@ -32,17 +32,17 @@
<define-tag version-torbrowser-vidalia whitespace=delete>0.2.12</define-tag>
<define-tag version-torimbrowserbundle whitespace=delete>1.3.21</define-tag>
-<define-tag version-torbrowserbundlelinux32 whitespace=delete>1.1.7</define-tag>
-<define-tag version-torbrowserbundlelinux64 whitespace=delete>1.1.7</define-tag>
-<define-tag version-gnu-torbrowser-tor whitespace=delete>0.2.2.24-alpha</define-tag>
+<define-tag version-torbrowserbundlelinux32 whitespace=delete>1.1.8</define-tag>
+<define-tag version-torbrowserbundlelinux64 whitespace=delete>1.1.8</define-tag>
+<define-tag version-gnu-torbrowser-tor whitespace=delete>0.2.2.25-alpha</define-tag>
<define-tag version-gnu-torbrowser-tor-components whitespace=delete>libevent-2.0.10, zlib-1.2.3, openssl-0.9.8p</define-tag>
-<define-tag version-gnu-torbrowser-firefox whitespace=delete>3.6.16</define-tag>
+<define-tag version-gnu-torbrowser-firefox whitespace=delete>3.6.17</define-tag>
<define-tag version-gnu-torbrowser-torbutton whitespace=delete>1.2.5</define-tag>
<define-tag version-gnu-torbrowser-vidalia whitespace=delete>0.2.12</define-tag>
-<define-tag version-torbrowserbundleosx whitespace=delete>1.0.15</define-tag>
-<define-tag version-osx-torbrowser-tor whitespace=delete>0.2.2.24-alpha</define-tag>
-<define-tag version-osx-torbrowser-firefox whitespace=delete>3.6.16</define-tag>
+<define-tag version-torbrowserbundleosx whitespace=delete>1.0.16</define-tag>
+<define-tag version-osx-torbrowser-tor whitespace=delete>0.2.2.25-alpha</define-tag>
+<define-tag version-osx-torbrowser-firefox whitespace=delete>3.6.17</define-tag>
<define-tag version-osx-torbrowser-torbutton whitespace=delete>1.2.5</define-tag>
<define-tag version-osx-torbrowser-polipo whitespace=delete>1.0.4.1</define-tag>
<define-tag version-osx-torbrowser-vidalia whitespace=delete>0.2.12</define-tag>
1
0

03 May '11
commit 8ec467eb5caeb4972e12a988a805d93f511bd192
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon May 2 19:59:39 2011 -0700
Renaming our process to "arm <input args>"
Our process was called "python ./src/starter.py <input args>" which made it a
pita to identify, use killall on, etc. Using some ctypes hacks to overwrite it
with an intuitive name.
---
src/starter.py | 8 +++
src/util/procname.py | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 130 insertions(+), 0 deletions(-)
diff --git a/src/starter.py b/src/starter.py
index c0a0270..365676c 100644
--- a/src/starter.py
+++ b/src/starter.py
@@ -387,5 +387,13 @@ if __name__ == '__main__':
util.log.log(CONFIG["log.savingDebugLog"], "Saving a debug log to '%s' (please check it for sensitive information before sharing)" % LOG_DUMP_PATH)
_dumpConfig()
+ # Attempts to rename our process from "python setup.py <input args>" to
+ # "arm <input args>"
+
+ try:
+ from util import procname
+ procname.renameProcess("arm %s" % " ".join(sys.argv[1:]))
+ except: pass
+
cli.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
diff --git a/src/util/procname.py b/src/util/procname.py
new file mode 100644
index 0000000..7641c5a
--- /dev/null
+++ b/src/util/procname.py
@@ -0,0 +1,122 @@
+# Module to allow for arbitrary renaming of our python process. This is mostly
+# based on:
+# http://www.rhinocerus.net/forum/lang-python/569677-setting-program-name-lik…
+# and an adaptation by Jake: https://github.com/ioerror/chameleon
+#
+# A cleaner implementation is available at:
+# https://github.com/cream/libs/blob/b38970e2a6f6d2620724c828808235be0445b799…
+# but I'm not quite clear on their implementation, and it only does targeted
+# argument replacement (ie, replace argv[0], argv[1], etc but with a string
+# the same size).
+
+import os
+import sys
+import ctypes
+import ctypes.util
+
+from util import sysTools
+
+# flag for setting the process name, found in '/usr/include/linux/prctl.h'
+PR_SET_NAME = 15
+
+# Maximum number of characters we'll set the process name to. Evidently this
+# cap was simply chosen since it didn't cause a segfault for its author.
+MAX_CHAR = 1608
+
+argc_t = ctypes.POINTER(ctypes.c_char_p)
+
+Py_GetArgcArgv = ctypes.pythonapi.Py_GetArgcArgv
+Py_GetArgcArgv.restype = None
+Py_GetArgcArgv.argtypes = [ctypes.POINTER(ctypes.c_int),
+ ctypes.POINTER(argc_t)]
+
+# tracks the last name we've changed the process to
+currentProcessName = None
+
+def renameProcess(processName):
+ """
+ Renames our current process from "python <args>" to a custom name.
+
+ Arguments:
+ processName - new name for our process
+ """
+
+ _setArgv(processName)
+ if sys.platform == "linux2":
+ _setPrctlName(processName)
+ elif sys.platform == "freebsd7":
+ _setProcTitle(processName)
+
+def _setArgv(processName):
+ """
+ Overwrites our argv in a similar fashion to how it's done in C with:
+ strcpy(argv[0], "new_name");
+ """
+
+ global currentProcessName
+
+ argv = ctypes.c_int(0)
+ argc = argc_t()
+ Py_GetArgcArgv(argv, ctypes.pointer(argc))
+
+ # The original author did the memset for 256, while Jake did it for the
+ # processName length (capped at 1608). I'm not sure of the reasons for
+ # either of these limits, but setting it to anything higher than than the
+ # length of the null terminated process name should be pointless, so opting
+ # for Jake's implementation on this.
+
+ if currentProcessName == None:
+ # Using argv via...
+ # currentProcessName = " ".join(["python"] + sys.argv)
+ #
+ # doesn't do the trick since this will miss interpretor arguments like...
+ # python -W ignore::DeprecationWarning myScript.py
+ #
+ # hence simply getting an outside opinion of our command.
+
+ psResults = sysTools.call("ps -p %i -o args" % os.getpid())
+
+ if len(psResults) == 2:
+ # output looks like:
+ # COMMAND
+ # python ./src/starter.py
+
+ currentProcessName = psResults[1]
+
+ if not currentProcessName:
+ raise IOError("unable to determine our process name")
+
+ # we need to fill extra space with null characters, otherwise the process
+ # will end with a '?' when you run ps against it
+ if len(currentProcessName) > len(processName):
+ processName += "\0" * (len(currentProcessName) - len(processName))
+
+ size = min(len(processName), MAX_CHAR)
+ ctypes.memset(argc.contents, 0, size + 1) # null terminate the string's end
+ ctypes.memmove(argc.contents, processName, size)
+ currentProcessName = processName[:MAX_CHAR]
+
+def _setPrctlName(processName):
+ """
+ Sets the prctl name, which is used by top and killall. This appears to be
+ Linux specific and has the max of 15 characters. Source:
+ http://stackoverflow.com/questions/564695/is-there-a-way-to-change-effectiv…
+ """
+
+ libc = ctypes.CDLL(ctypes.util.find_library("c"))
+ nameBuffer = ctypes.create_string_buffer(len(processName)+1)
+ nameBuffer.value = processName
+ libc.prctl(PR_SET_NAME, ctypes.byref(nameBuffer), 0, 0, 0)
+
+def _setProcTitle(processName):
+ """
+ BSD specific calls (should be compataible with both FreeBSD and OpenBSD:
+ http://fxr.watson.org/fxr/source/gen/setproctitle.c?v=FREEBSD-LIBC
+ http://www.rootr.net/man/man/setproctitle/3
+ """
+
+ libc = ctypes.CDLL(ctypes.util.find_library("c"))
+ nameBuffer = ctypes.create_string_buffer(len(processName)+1)
+ nameBuffer.value = processName
+ libc.setproctitle(ctypes.byref(nameBuffer))
+
1
0

03 May '11
commit 47a2e5a9ce4b9324931781c76f3aa11f4d9ea0a2
Author: Sebastian Hahn <sebastian(a)torproject.org>
Date: Sat Apr 30 13:27:47 2011 +0200
Don't choose exit nodes without desc available
n_supported[i] has a random value prior to initialization, so a node
that doesn't have routerinfo available can have a random priority.
Patch contributed by wanoskarnet from #tor. Thanks!
---
src/or/circuitbuild.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 04d833d..2b5638b 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -2668,8 +2668,10 @@ choose_good_exit_server_general(int need_uptime, int need_capacity)
*/
continue;
}
- if (!node_has_descriptor(node))
+ if (!node_has_descriptor(node)) {
+ n_supported[i] = -1;
continue;
+ }
if (!node->is_running || node->is_bad_exit) {
n_supported[i] = -1;
continue; /* skip routers that are known to be down or bad exits */
@@ -2786,8 +2788,6 @@ choose_good_exit_server_general(int need_uptime, int need_capacity)
/* try once to pick only from routers that satisfy a needed port,
* then if there are none, pick from any that support exiting. */
SMARTLIST_FOREACH_BEGIN(the_nodes, const node_t *, node) {
- if (!node_has_descriptor(node))
- continue;
if (n_supported[node_sl_idx] != -1 &&
(attempt || node_handles_some_port(node, needed_ports))) {
// log_fn(LOG_DEBUG,"Try %d: '%s' is a possibility.",
1
0

03 May '11
commit 5b96773a40fb1290e3198c0f01d11b2fc0fe74bd
Merge: 27b3b7a 47a2e5a
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Mon May 2 20:21:08 2011 -0400
Merge remote-tracking branch 'sebastian/bug3047'
src/or/circuitbuild.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
1
0

[tor/master] Add a couple of notes to doc/HACKING based on 0.2.2.25-alpha process
by nickm@torproject.org 03 May '11
by nickm@torproject.org 03 May '11
03 May '11
commit 033c27ac5ea02fa1a44651c5a324cb78e787f1a3
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Mon May 2 14:45:44 2011 -0400
Add a couple of notes to doc/HACKING based on 0.2.2.25-alpha process
---
doc/HACKING | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/doc/HACKING b/doc/HACKING
index 6336232..86d4a98 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -472,6 +472,9 @@ in their approved versions list.
7) Sign and push the tarball to the website in the dist/ directory. Sign
and push the git tag.
+ (That's either "git tag -u <keyid> tor-0.2.x.y-status", then
+ "git push origin tag tor-0.2.x.y-status". To sign the
+ tarball, "gpg -ba <the_tarball>")
8) Edit include/versions.wmi to note the new version. Rebuild and push
the website.
@@ -490,3 +493,5 @@ the date in the ChangeLog.
packages are up (for a stable release), and mail the release blurb and
changelog to tor-talk or tor-announce.
+ (We might be moving to faster announcements, but don't announce until
+ the website is at least updated.)
1
0