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
- 213343 discussions

r24718: {projects} small fixes to fix progress dialog and alert box glitches (projects/android/trunk/Orbot/src/org/torproject/android)
by Nathan Freitas 03 May '11
by Nathan Freitas 03 May '11
03 May '11
Author: n8fr8
Date: 2011-05-03 06:49:25 +0000 (Tue, 03 May 2011)
New Revision: 24718
Modified:
projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java
Log:
small fixes to fix progress dialog and alert box glitches
Modified: projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java 2011-05-03 06:41:34 UTC (rev 24717)
+++ projects/…
[View More]android/trunk/Orbot/src/org/torproject/android/Orbot.java 2011-05-03 06:49:25 UTC (rev 24718)
@@ -500,6 +500,7 @@
.show();
}
+ aDialog.setCanceledOnTouchOutside(true);
}
/*
* Set the state of the running/not running graphic and label
@@ -518,7 +519,6 @@
if (torStatus == STATUS_ON)
{
imgStatus.setImageResource(R.drawable.toron);
-
if (progressDialog != null)
{
@@ -559,11 +559,8 @@
{
imgStatus.setImageResource(R.drawable.torstarting);
- if (progressDialog == null)
- {
- progressDialog =ProgressDialog.show(this, "", getString(R.string.status_starting_up));
- }
- else
+
+ if (progressDialog != null)
progressDialog.setMessage(torServiceMsg);
if (mItemOnOff != null)
@@ -594,7 +591,6 @@
progressDialog = null;
}
-
imgStatus.setImageResource(R.drawable.toroff);
lblStatus.setText(getString(R.string.status_disabled) + "\n" + getString(R.string.press_to_start));
@@ -725,11 +721,7 @@
break;
case TorServiceConstants.ENABLE_TOR_MSG:
- if (progressDialog == null)
- {
- progressDialog = ProgressDialog.show(Orbot.this, "", getString(R.string.status_starting_up));
- }
-
+ createProgressDialog(getString(R.string.status_starting_up));
updateStatus((String)msg.getData().getString(HANDLER_TOR_MSG));
@@ -745,6 +737,17 @@
}
}
+ private synchronized void createProgressDialog (String msg)
+ {
+ if (progressDialog == null)
+ {
+ progressDialog = ProgressDialog.show(Orbot.this, "", msg);
+
+ progressDialog.setCancelable(true);
+ }
+
+ }
+
};
[View Less]
1
0

r24717: {projects} fixed 'leaky' dialog box error (in 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 06:41:34 +0000 (Tue, 03 May 2011)
New Revision: 24717
Modified:
projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java
projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java
Log:
fixed 'leaky' dialog box error
Modified: projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/Orbot.…
[View More]java 2011-05-03 05:58:58 UTC (rev 24716)
+++ projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java 2011-05-03 06:41:34 UTC (rev 24717)
@@ -248,6 +248,12 @@
protected void onPause() {
super.onPause();
+ if (progressDialog != null)
+ {
+ progressDialog.dismiss();
+ progressDialog = null;
+ }
+
}
@@ -472,21 +478,18 @@
}
}
- private AlertDialog aDialog = null;
-
private void showAlert(String title, String msg, boolean button)
{
- if (aDialog != null)
- aDialog.dismiss();
+ AlertDialog aDialog = null;
if (button)
{
- aDialog = new AlertDialog.Builder(this)
- .setIcon(R.drawable.icon)
- .setTitle(title)
- .setMessage(msg)
- .setPositiveButton(android.R.string.ok, null)
- .show();
+ aDialog = new AlertDialog.Builder(this)
+ .setIcon(R.drawable.icon)
+ .setTitle(title)
+ .setMessage(msg)
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
}
else
{
@@ -496,6 +499,7 @@
.setMessage(msg)
.show();
}
+
}
/*
* Set the state of the running/not running graphic and label
@@ -515,6 +519,7 @@
{
imgStatus.setImageResource(R.drawable.toron);
+
if (progressDialog != null)
{
progressDialog.dismiss();
@@ -544,8 +549,10 @@
showAlert(getString(R.string.status_activated),getString(R.string.connect_first_time),true);
}
+
if (mItemOnOff != null)
mItemOnOff.setTitle(R.string.menu_stop);
+
}
else if (torStatus == STATUS_CONNECTING)
Modified: projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java 2011-05-03 05:58:58 UTC (rev 24716)
+++ projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java 2011-05-03 06:41:34 UTC (rev 24717)
@@ -600,14 +600,13 @@
else
{
TorTransProxy.purgeIptables(this);
- showAlert("Status", "Transparent proxying DISABLED");
-
+ showAlert("Status", "Transparent proxying: DISABLED");
}
}
else
{
TorTransProxy.purgeIptables(this);
- showAlert("Status", "Transparent proxying DISABLED");
+ showAlert("Status", "Transparent proxying: DISABLED");
}
[View Less]
1
0

r24716: {projects} updating project files, including re-enabling onBoot mode fo (projects/android/trunk/Orbot)
by Nathan Freitas 03 May '11
by Nathan Freitas 03 May '11
03 May '11
Author: n8fr8
Date: 2011-05-03 05:58:58 +0000 (Tue, 03 May 2011)
New Revision: 24716
Modified:
projects/android/trunk/Orbot/AndroidManifest.xml
projects/android/trunk/Orbot/AndroidManifest.xml.production
projects/android/trunk/Orbot/CHANGELOG
projects/android/trunk/Orbot/LICENSE
Log:
updating project files, including re-enabling onBoot mode for Orbot service
Modified: projects/android/trunk/Orbot/AndroidManifest.xml
=================================================================…
[View More]==
--- projects/android/trunk/Orbot/AndroidManifest.xml 2011-05-03 05:58:19 UTC (rev 24715)
+++ projects/android/trunk/Orbot/AndroidManifest.xml 2011-05-03 05:58:58 UTC (rev 24716)
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.torproject.android" android:versionName="0.2.2.22-orbot-alpha-1.0.5-dev-debug" android:versionCode="11">
+ package="org.torproject.android" android:versionName="0.2.2.22-orbot-alpha-1.0.5.20110503a-dev" android:versionCode="11">
<uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="false">
@@ -32,7 +33,10 @@
<activity android:name=".AppManager" android:label="@string/app_name"/>
<activity android:name=".WizardActivity" android:label="@string/app_name"/>
- <service android:name=".service.TorService" android:process=":remote">
+ <service android:enabled="true"
+ android:name=".service.TorService"
+ android:exported="false"
+ >
<intent-filter>
<action android:name="org.torproject.android.service.ITorService" />
<action android:name="org.torproject.android.service.TOR_SERVICE" />
@@ -40,6 +44,13 @@
</service>
+ <receiver android:name=".OnBootReceiver">
+ <intent-filter>
+ <action
+ android:name="android.intent.action.BOOT_COMPLETED" />
+ <category android:name="android.intent.category.HOME" />
+ </intent-filter>
+ </receiver>
</application>
Modified: projects/android/trunk/Orbot/AndroidManifest.xml.production
===================================================================
--- projects/android/trunk/Orbot/AndroidManifest.xml.production 2011-05-03 05:58:19 UTC (rev 24715)
+++ projects/android/trunk/Orbot/AndroidManifest.xml.production 2011-05-03 05:58:58 UTC (rev 24716)
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.torproject.android" android:versionName="0.2.2.14-orbot-alpha-1.0.3" android:versionCode="9">
+ package="org.torproject.android" android:versionName="0.2.2.22-orbot-alpha-1.0.5.20110416a-dev" android:versionCode="11">
<uses-permission android:name="android.permission.INTERNET" />
-
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
- <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="false">
+ <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<activity android:name=".Orbot"
android:theme="@android:style/Theme.NoTitleBar">
@@ -33,7 +33,10 @@
<activity android:name=".AppManager" android:label="@string/app_name"/>
<activity android:name=".WizardActivity" android:label="@string/app_name"/>
- <service android:name=".service.TorService" android:process=":remote">
+ <service android:enabled="true"
+ android:name=".service.TorService"
+ android:exported="false"
+ >
<intent-filter>
<action android:name="org.torproject.android.service.ITorService" />
<action android:name="org.torproject.android.service.TOR_SERVICE" />
@@ -41,6 +44,13 @@
</service>
+ <receiver android:name=".OnBootReceiver">
+ <intent-filter>
+ <action
+ android:name="android.intent.action.BOOT_COMPLETED" />
+ <category android:name="android.intent.category.HOME" />
+ </intent-filter>
+ </receiver>
</application>
Modified: projects/android/trunk/Orbot/CHANGELOG
===================================================================
--- projects/android/trunk/Orbot/CHANGELOG 2011-05-03 05:58:19 UTC (rev 24715)
+++ projects/android/trunk/Orbot/CHANGELOG 2011-05-03 05:58:58 UTC (rev 24716)
@@ -1,6 +1,7 @@
NOTE: Specific #s below correspond to Trac tickets logged and maintained at https://trac.torproject.org/projects/tor/
1.0.5
+- Added new toolbar notifications and alerts for displaying notifications and Tor messages
- Removed unused Socks client code from android.net package
- Updated wizard to show link to Gibberbot (formerly OTRchat) chat app
- Bundled iptables 1.4.7 for ARM instead of relying on installed version
Modified: projects/android/trunk/Orbot/LICENSE
===================================================================
--- projects/android/trunk/Orbot/LICENSE 2011-05-03 05:58:19 UTC (rev 24715)
+++ projects/android/trunk/Orbot/LICENSE 2011-05-03 05:58:58 UTC (rev 24716)
@@ -1,7 +1,8 @@
This file contains the license for Orbot, a free software project to
provide anonymity on the Internet from a Google Android smartphone.
-It also lists the licenses for other components used by Orbot.
+It also lists the licenses for other components used by Orbot, including
+Tor, Privoxy, and iptables.
For more information about Orbot, see https://guardianproject.info/apps/orbot
@@ -146,3 +147,14 @@
See the src/config/geoip file in particular.
===============================================================================
+===============================================================================
+Orbot also uses iptables from the Netfilter.org project
+
+netfilter/iptables is - like all of the Linux Kernel - Free Software (sometimes
+referred to as Open Source Software), distributed under the terms of the GNU GPLv2
+only. Please, note that some source code files might differ, and in that case it
+is explicitely stated in the header of every file.
+
+The GPL also contains some obligations. If you distribute netfilter/iptables code
+in binary form, you have to offer the source code, too.
+===============================================================================
[View Less]
1
0

r24715: {projects} updating strings, layouts and drawables. removing unneeded b (in projects/android/trunk/Orbot/res: drawable layout raw values)
by Nathan Freitas 03 May '11
by Nathan Freitas 03 May '11
03 May '11
Author: n8fr8
Date: 2011-05-03 05:58:19 +0000 (Tue, 03 May 2011)
New Revision: 24715
Added:
projects/android/trunk/Orbot/res/drawable/tornotificationerr.png
Removed:
projects/android/trunk/Orbot/res/raw/busybox_g1
Modified:
projects/android/trunk/Orbot/res/layout/layout_main.xml
projects/android/trunk/Orbot/res/values/strings.xml
Log:
updating strings, layouts and drawables. removing unneeded busybox binary.
Added: projects/android/trunk/Orbot/res/drawable/tornotificationerr.png
=…
[View More]==================================================================
(Binary files differ)
Property changes on: projects/android/trunk/Orbot/res/drawable/tornotificationerr.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: projects/android/trunk/Orbot/res/layout/layout_main.xml
===================================================================
--- projects/android/trunk/Orbot/res/layout/layout_main.xml 2011-05-03 05:56:40 UTC (rev 24714)
+++ projects/android/trunk/Orbot/res/layout/layout_main.xml 2011-05-03 05:58:19 UTC (rev 24715)
@@ -61,7 +61,7 @@
android:gravity="center_horizontal"
android:textStyle="bold"
android:width="330px"
- android:height="125px"
+ android:height="75px"
android:textColor="#ffffff"
/>
</TableRow>
Deleted: projects/android/trunk/Orbot/res/raw/busybox_g1
===================================================================
(Binary files differ)
Modified: projects/android/trunk/Orbot/res/values/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values/strings.xml 2011-05-03 05:56:40 UTC (rev 24714)
+++ projects/android/trunk/Orbot/res/values/strings.xml 2011-05-03 05:58:19 UTC (rev 24715)
@@ -34,6 +34,7 @@
<string name="menu_wizard">Wizard</string>
+
<string name="button_help">Help</string>
<string name="button_close">Close</string>
<string name="button_about">About</string>
[View Less]
1
0

r24714: {projects} general cleanup on detecting iptables status and startup/shu (in 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:40 +0000 (Tue, 03 May 2011)
New Revision: 24714
Modified:
projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java
projects/android/trunk/Orbot/src/org/torproject/android/WizardHelper.java
projects/android/trunk/Orbot/src/org/torproject/android/service/ITorService.aidl
projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java
projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceConstants.…
[View More]java
projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceUtils.java
Log:
general cleanup on detecting iptables status and startup/shutdown calls
Modified: projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java 2011-05-03 05:56:04 UTC (rev 24713)
+++ projects/android/trunk/Orbot/src/org/torproject/android/Orbot.java 2011-05-03 05:56:40 UTC (rev 24714)
@@ -75,6 +75,12 @@
prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ setContentView(R.layout.layout_main);
+
+ lblStatus = (TextView)findViewById(R.id.lblStatus);
+ lblStatus.setOnLongClickListener(this);
+ imgStatus = (ImageView)findViewById(R.id.imgStatus);
+ imgStatus.setOnLongClickListener(this);
}
/*
@@ -199,8 +205,8 @@
stopTor();
+ stopService(new Intent(ITorService.class.getName()));
-
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
@@ -321,7 +327,6 @@
protected void onResume() {
super.onResume();
- showMain();
updateStatus("");
if (getIntent() == null)
@@ -427,21 +432,6 @@
/*
- * Show the main form UI
- */
- private void showMain ()
- {
-
- setContentView(R.layout.layout_main);
-
- lblStatus = (TextView)findViewById(R.id.lblStatus);
- lblStatus.setOnLongClickListener(this);
- imgStatus = (ImageView)findViewById(R.id.imgStatus);
- imgStatus.setOnLongClickListener(this);
-
- }
-
- /*
* Launch the system activity for Uri viewing with the provided url
*/
private void openBrowser(String url)
@@ -482,11 +472,16 @@
}
}
+ private AlertDialog aDialog = null;
+
private void showAlert(String title, String msg, boolean button)
{
+ if (aDialog != null)
+ aDialog.dismiss();
+
if (button)
{
- new AlertDialog.Builder(this)
+ aDialog = new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle(title)
.setMessage(msg)
@@ -495,7 +490,7 @@
}
else
{
- new AlertDialog.Builder(this)
+ aDialog = new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle(title)
.setMessage(msg)
@@ -519,7 +514,7 @@
if (torStatus == STATUS_ON)
{
imgStatus.setImageResource(R.drawable.toron);
- // imgStatus.clearAnimation();
+
if (progressDialog != null)
{
progressDialog.dismiss();
@@ -535,8 +530,6 @@
if (torServiceMsg.length() > 0)
showAlert("Update", torServiceMsg, false);
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
-
boolean showFirstTime = prefs.getBoolean("connect_first_time",true);
if (showFirstTime)
@@ -572,7 +565,7 @@
}
else if (torStatus == STATUS_OFF)
{
- imgStatus.setImageResource(R.drawable.torstopping);
+ imgStatus.setImageResource(R.drawable.toroff);
if (progressDialog != null)
{
@@ -615,10 +608,6 @@
private void startTor () throws RemoteException
{
- if (progressDialog == null)
- {
- progressDialog =ProgressDialog.show(this, "", getString(R.string.status_starting_up));
- }
mService.setProfile(TorServiceConstants.PROFILE_ON); //this means turn on
@@ -641,7 +630,7 @@
mHandler.sendMessage(msg);
}
- stopService(new Intent(ITorService.class.getName()));
+ // stopService(new Intent(ITorService.class.getName()));
}
@@ -720,8 +709,7 @@
String torServiceMsg = (String)msg.getData().getString(HANDLER_TOR_MSG);
- if (torServiceMsg.length() > 0)
- updateStatus(torServiceMsg);
+ updateStatus(torServiceMsg);
break;
case TorServiceConstants.LOG_MSG:
@@ -730,10 +718,19 @@
break;
case TorServiceConstants.ENABLE_TOR_MSG:
+ if (progressDialog == null)
+ {
+ progressDialog = ProgressDialog.show(Orbot.this, "", getString(R.string.status_starting_up));
+ }
+
+ updateStatus((String)msg.getData().getString(HANDLER_TOR_MSG));
+
break;
case TorServiceConstants.DISABLE_TOR_MSG:
+ updateStatus((String)msg.getData().getString(HANDLER_TOR_MSG));
+
break;
default:
Modified: projects/android/trunk/Orbot/src/org/torproject/android/WizardHelper.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/WizardHelper.java 2011-05-03 05:56:04 UTC (rev 24713)
+++ projects/android/trunk/Orbot/src/org/torproject/android/WizardHelper.java 2011-05-03 05:56:40 UTC (rev 24714)
@@ -1,5 +1,6 @@
package org.torproject.android;
+import org.torproject.android.service.TorService;
import org.torproject.android.service.TorServiceUtils;
import org.torproject.android.service.TorTransProxy;
@@ -12,6 +13,7 @@
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.preference.PreferenceManager;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -88,6 +90,26 @@
boolean hasRoot = TorServiceUtils.checkRootAccess();
+ if (hasRoot)
+ {
+ try {
+ int resp = TorTransProxy.testOwnerModule(context);
+
+ if (resp < 0)
+ {
+ hasRoot = false;
+ Toast.makeText(context, "ERROR: IPTables OWNER module not available", Toast.LENGTH_LONG).show();
+
+ Log.i(TorService.TAG,"ERROR: IPTables OWNER module not available");
+ }
+
+ } catch (Exception e) {
+
+ hasRoot = false;
+ Log.d(TorService.TAG,"ERROR: IPTables OWNER module not available",e);
+ }
+ }
+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Editor pEdit = prefs.edit();
Modified: projects/android/trunk/Orbot/src/org/torproject/android/service/ITorService.aidl
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/service/ITorService.aidl 2011-05-03 05:56:04 UTC (rev 24713)
+++ projects/android/trunk/Orbot/src/org/torproject/android/service/ITorService.aidl 2011-05-03 05:56:40 UTC (rev 24714)
@@ -27,12 +27,7 @@
**/
void setProfile(int profile);
- /**
- * Update trans proxying
- **/
- boolean updateTransProxy ();
-
/**
* Set configuration
**/
Modified: projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java 2011-05-03 05:56:04 UTC (rev 24713)
+++ projects/android/trunk/Orbot/src/org/torproject/android/service/TorService.java 2011-05-03 05:56:40 UTC (rev 24714)
@@ -43,9 +43,9 @@
public class TorService extends Service implements TorServiceConstants, Runnable, EventHandler
{
- private static boolean ENABLE_DEBUG_LOG = false;
+ public static boolean ENABLE_DEBUG_LOG = false;
- private static int currentStatus = STATUS_READY;
+ private static int currentStatus = STATUS_OFF;
private TorControlConnection conn = null;
private Socket torConnSocket = null;
@@ -53,7 +53,6 @@
private static TorService _torInstance;
private static final int NOTIFY_ID = 1;
- private static int NOTIFY_ID_ERROR = 2;
private static final int MAX_START_TRIES = 3;
@@ -213,7 +212,7 @@
} catch (Exception e) {
logNotice("unable to find tor binaries: " + e.getMessage());
- showToolbarNotification(e.getMessage(), NOTIFY_ID_ERROR, R.drawable.tornotificationoff);
+ showToolbarNotification(e.getMessage(), NOTIFY_ID, R.drawable.tornotificationerr);
Log.e(TAG, "error checking tor binaries", e);
}
@@ -248,7 +247,7 @@
catch (Exception e)
{
currentStatus = STATUS_OFF;
- this.showToolbarNotification(getString(R.string.status_disabled), NOTIFY_ID_ERROR, R.drawable.tornotification);
+ this.showToolbarNotification(getString(R.string.status_disabled), NOTIFY_ID, R.drawable.tornotificationerr);
Log.d(TAG,"Unable to start Tor: " + e.getMessage(),e);
}
}
@@ -274,7 +273,7 @@
{
killTorProcess ();
- currentStatus = STATUS_READY;
+ currentStatus = STATUS_OFF;
showToolbarNotification (getString(R.string.status_disabled),NOTIFY_ID,R.drawable.tornotificationoff);
sendCallbackStatusMessage(getString(R.string.status_disabled));
@@ -314,170 +313,7 @@
}*/
- /*
- private void loadTorSettingsFromPreferences () throws RemoteException
- {
- try
- {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
-
- ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false);
- Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG);
-
- boolean useBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_ENABLED, false);
-
- //boolean autoUpdateBridges = prefs.getBoolean(PREF_BRIDGES_UPDATED, false);
-
- boolean becomeRelay = prefs.getBoolean(TorConstants.PREF_OR, false);
-
- boolean ReachableAddresses = prefs.getBoolean(TorConstants.PREF_REACHABLE_ADDRESSES,false);
-
- boolean enableHiddenServices = prefs.getBoolean("pref_hs_enable", false);
-
- boolean enableTransparentProxy = prefs.getBoolean(TorConstants.PREF_TRANSPARENT, false);
- mBinder.updateTransProxy();
-
- 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(a)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);
-
- }
- else
- {
- mBinder.updateConfiguration("ReachableAddresses", "", 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);
-
- }
- else
- {
- mBinder.updateConfiguration("ORPort", "", false);
- mBinder.updateConfiguration("Nickname", "", false);
- mBinder.updateConfiguration("ExitPolicy", "", false);
- }
- }
- catch (Exception e)
- {
- showAlert("Uh-oh!","Your relay settings caused an exception!");
-
- return;
- }
-
- if (enableHiddenServices)
- {
- mBinder.updateConfiguration("HiddenServiceDir","/data/data/org.torproject.android/", false);
-
- String hsPorts = prefs.getString("pref_hs_ports","");
-
- StringTokenizer st = new StringTokenizer (hsPorts,",");
- String hsPortConfig = null;
-
- while (st.hasMoreTokens())
- {
- hsPortConfig = st.nextToken();
-
- if (hsPortConfig.indexOf(":")==-1) //setup the port to localhost if not specifed
- {
- hsPortConfig = hsPortConfig + " 127.0.0.1:" + hsPortConfig;
- }
-
- mBinder.updateConfiguration("HiddenServicePort",hsPortConfig, false);
- }
-
- //force save now so the hostname file gets generated
- mBinder.saveConfiguration();
-
- String onionHostname = getHiddenServiceHostname();
-
- if (onionHostname != null)
- {
-
- Editor pEdit = prefs.edit();
- pEdit.putString("pref_hs_hostname",onionHostname);
- pEdit.commit();
-
- }
- }
- else
- {
- mBinder.updateConfiguration("HiddenServiceDir","", false);
- }
-
- mBinder.saveConfiguration();
-
- }
- catch (Exception e)
- {
- showAlert("Uh-oh!","There was an error updating your settings");
-
- Log.w(TAG, "processSettings()", e);
-
- return;
- }
-
- }*/
-
+
private void getHiddenServiceHostname ()
{
@@ -493,7 +329,7 @@
{
try {
String onionHostname = Utils.readString(new FileInputStream(file));
- showToolbarNotification("hidden service on: " + onionHostname, NOTIFY_ID_ERROR, R.drawable.tornotification);
+ showToolbarNotification("hidden service on: " + onionHostname, NOTIFY_ID, R.drawable.tornotification);
Editor pEdit = prefs.edit();
pEdit.putString("pref_hs_hostname",onionHostname);
pEdit.commit();
@@ -501,13 +337,13 @@
} catch (FileNotFoundException e) {
logException("unable to read onion hostname file",e);
- showToolbarNotification("unable to read hidden service name", NOTIFY_ID_ERROR, R.drawable.tornotification);
+ showToolbarNotification("unable to read hidden service name", NOTIFY_ID, R.drawable.tornotificationerr);
return;
}
}
else
{
- showToolbarNotification("unable to read hidden service name", NOTIFY_ID_ERROR, R.drawable.tornotification);
+ showToolbarNotification("unable to read hidden service name", NOTIFY_ID, R.drawable.tornotificationerr);
}
@@ -664,9 +500,10 @@
try {
+
+ setupTransProxy(true);
runTorShellCmd();
runPrivoxyShellCmd();
- setupTransProxy(true);
} catch (Exception e) {
logException("Unable to start Tor: " + e.getMessage(),e);
@@ -676,7 +513,12 @@
}
-
+ /*
+ * activate means whether to apply the users preferences
+ * or clear them out
+ *
+ * the idea is that if Tor is off then transproxy is off
+ */
private boolean setupTransProxy (boolean activate) throws Exception
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
@@ -710,10 +552,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));
+ }
+ }
TorService.logMessage ("TorTransProxy resp code: " + code);
@@ -725,17 +593,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;
}
@@ -827,7 +685,7 @@
int attempts = 0;
- while (privoxyProcId == -1 && attempts < MAX_START_TRIES)
+ if (privoxyProcId == -1)
{
log = new StringBuilder();
@@ -838,20 +696,22 @@
logNotice (cmds[0]);
- TorServiceUtils.doShellCommand(cmds, log, false, true);
+ boolean runAsRoot = false;
+ boolean waitFor = false;
+ TorServiceUtils.doShellCommand(cmds, log, runAsRoot, waitFor);
+
//wait one second to make sure it has started up
Thread.sleep(1000);
- privoxyProcId = TorServiceUtils.findProcessId(privoxyPath);
-
- if (privoxyProcId == -1)
+ while ((privoxyProcId = TorServiceUtils.findProcessId(privoxyPath)) == -1 && attempts < MAX_START_TRIES)
{
- logNotice("Couldn't start Privoxy process... retrying...\n" + log);
+ logNotice("Couldn't find Privoxy process... retrying...\n" + log);
Thread.sleep(3000);
attempts++;
}
+
logNotice(log.toString());
}
@@ -1066,7 +926,7 @@
.setPositiveButton(android.R.string.ok, null)
.show();
*/
- showToolbarNotification(msg, NOTIFY_ID_ERROR, R.drawable.tornotification);
+ showToolbarNotification(msg, NOTIFY_ID, R.drawable.tornotification);
}
public void newDescriptors(List<String> orList) {
@@ -1168,7 +1028,7 @@
catch (Exception e)
{
logNotice("unable to find tor binaries: " + e.getMessage());
- showToolbarNotification(e.getMessage(), NOTIFY_ID_ERROR, R.drawable.tornotificationoff);
+ showToolbarNotification(e.getMessage(), NOTIFY_ID, R.drawable.tornotificationerr);
Log.d(TAG,"Unable to check for Tor binaries",e);
return null;
@@ -1227,23 +1087,8 @@
}
- public boolean updateTransProxy ()
- {
-
- //turn on
- try
- {
- setupTransProxy(currentStatus == STATUS_ON);
- return true;
- }
- catch (Exception e)
- {
- Log.d(TAG, "error enabling transproxy",e);
-
- return false;
- }
- }
+
public String getConfiguration (String name)
{
try
@@ -1431,9 +1276,12 @@
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false);
+ Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG);
+
boolean useBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_ENABLED, false);
- boolean autoUpdateBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_UPDATED, false);
+ //boolean autoUpdateBridges = prefs.getBoolean(TorConstants.PREF_BRIDGES_UPDATED, false);
boolean becomeRelay = prefs.getBoolean(TorConstants.PREF_OR, false);
@@ -1441,16 +1289,21 @@
boolean enableHiddenServices = prefs.getBoolean("pref_hs_enable", false);
- boolean enableTransparentProxy = prefs.getBoolean(TorConstants.PREF_TRANSPARENT, false);
+ //boolean enableTransparentProxy = prefs.getBoolean(TorConstants.PREF_TRANSPARENT, false);
- try
- {
- setupTransProxy(currentStatus != STATUS_OFF);
- }
- catch (Exception e)
- {
- logException("unable to setup transproxy",e);
- }
+ if (currentStatus == STATUS_ON)
+ {
+ //reset iptables rules in active mode
+
+ try
+ {
+ setupTransProxy(true);
+ }
+ catch (Exception e)
+ {
+ logException("unable to setup transproxy",e);
+ }
+ }
if (useBridges)
{
@@ -1575,6 +1428,6 @@
return true;
}
-
+
}
Modified: projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceConstants.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceConstants.java 2011-05-03 05:56:04 UTC (rev 24713)
+++ projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceConstants.java 2011-05-03 05:56:40 UTC (rev 24714)
@@ -69,8 +69,8 @@
//control port
public final static String TOR_CONTROL_PORT_MSG_BOOTSTRAP_DONE = "Bootstrapped 100%";
- public final static int STATUS_OFF = -1;
- public final static int STATUS_READY = 0;
+ public final static int STATUS_OFF = 0;
+ // public final static int STATUS_READY = 0;
public final static int STATUS_ON = 1;
public final static int STATUS_CONNECTING = 2;
Modified: projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceUtils.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceUtils.java 2011-05-03 05:56:04 UTC (rev 24713)
+++ projects/android/trunk/Orbot/src/org/torproject/android/service/TorServiceUtils.java 2011-05-03 05:56:40 UTC (rev 24714)
@@ -162,6 +162,7 @@
else
proc = Runtime.getRuntime().exec("sh");
+
OutputStreamWriter out = new OutputStreamWriter(proc.getOutputStream());
for (int i = 0; i < cmds.length; i++)
[View Less]
1
0

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.…
[View More]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;
+ }
}
[View Less]
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
…
[View More] 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>
[View Less]
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
-…
[View More]-- 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):
"""
[View Less]
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.…
[View More]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
[View Less]
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 ++++++++++++…
[View More]-------------
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):
[View Less]
1
0