[tor-commits] [flashproxy/master] Bypass facilitator when given "client" and "relay"

2013-06-19 Thread dcf
commit 2adb6d5745534b7d274b7297e21f15d538b31456
Author: Arlo Breault 
Date:   Fri May 31 12:25:21 2013 -0700

Bypass facilitator when given "client" and "relay"

Proxy should not contact facilitator if given "relay" and "client"
parameters.

Fixes #9006
---
 ChangeLog   |4 
 proxy/flashproxy.js |1 +
 2 files changed, 5 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 791224c..edd92a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,10 @@
 meant to reduce the number of connections to the relay when clients
 haven't set up port forwarding. Introduced bug 9009, later fixed. 
 
+  o A proxy no longer contacts the facilitator when it is given the
+"client" and "relay" parameters. It serves the one given client and
+then stops. Patch by Arlo Breault. Fixes bug 9006.
+
 Changes in version 1.1
   o Programs that use certificate pins now take a --disable-pin option
 that causes pins to be ignored.
diff --git a/proxy/flashproxy.js b/proxy/flashproxy.js
index cb54f23..8a70c60 100644
--- a/proxy/flashproxy.js
+++ b/proxy/flashproxy.js
@@ -522,6 +522,7 @@ function FlashProxy() {
 }
 if (client_addr !== undefined && relay_addr !== undefined) {
 this.begin_proxy(client_addr, relay_addr);
+return;
 } else if (client_addr !== undefined) {
 puts("Error: the \"client\" parameter requires \"relay\" also.")
 this.die();

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [torbrowser/master] update alpha bundles to 2.4.14-alpha-1

2013-06-19 Thread erinn
commit 5c4983d17b682ce84865c489c91de1c1c2523964
Author: Erinn Clark 
Date:   Wed Jun 19 21:05:09 2013 -0300

update alpha bundles to 2.4.14-alpha-1
---
 README.LINUX-2.4|6 +++---
 README.OSX-2.4  |6 +++---
 README.WIN-2.4  |6 +++---
 build-scripts/linux-alpha.mk|2 +-
 build-scripts/osx-alpha.mk  |2 +-
 build-scripts/versions-alpha.mk |   12 ++--
 build-scripts/windows-alpha.mk  |2 +-
 changelog.linux-2.4 |   10 ++
 changelog.osx-2.4   |   10 ++
 changelog.windows-2.4   |   10 ++
 10 files changed, 48 insertions(+), 18 deletions(-)

diff --git a/README.LINUX-2.4 b/README.LINUX-2.4
index 0aab8e1..a59b600 100644
--- a/README.LINUX-2.4
+++ b/README.LINUX-2.4
@@ -5,11 +5,11 @@ Included applications
 -
 
 Vidalia 0.2.21 (with Qt 4.8.1)
-Tor 0.2.4.12-alpha (with libevent-2.0.21-stable, zlib-1.2.7 and openssl-1.0.0k)
+Tor 0.2.4.14-alpha (with libevent-2.0.21-stable, zlib-1.2.8 and openssl-1.0.0k)
 Firefox 17.0.6esr
  \_ Torbutton 1.5.2
- |_ NoScript 2.6.6.1
- |_ HTTPS-Everywhere 4.0development.6
+ |_ NoScript 2.6.6.2
+ |_ HTTPS-Everywhere 4.0development.8
  |_ PDF Viewer 0.8.1
 
 Usage
diff --git a/README.OSX-2.4 b/README.OSX-2.4
index 942df88..923cb72 100644
--- a/README.OSX-2.4
+++ b/README.OSX-2.4
@@ -5,11 +5,11 @@ Included applications
 -
 
 Vidalia 0.2.21 (with Qt 4.8.1)
-Tor 0.2.4.12-alpha (with libevent-2.0.21-stable, zlib-1.2.7 and openssl-1.0.0k)
+Tor 0.2.4.14-alpha (with libevent-2.0.21-stable, zlib-1.2.8 and openssl-1.0.0k)
 Firefox 17.0.6esr
  \_ Torbutton 1.5.2
- |_ NoScript 2.6.6.1
- |_ HTTPS-Everywhere 4.0development.6
+ |_ NoScript 2.6.6.2
+ |_ HTTPS-Everywhere 4.0development.8
  |_ PDF Viewer 0.8.1
 
 Usage
diff --git a/README.WIN-2.4 b/README.WIN-2.4
index 9fd6561..f73eb59 100644
--- a/README.WIN-2.4
+++ b/README.WIN-2.4
@@ -5,11 +5,11 @@ Included applications
 -
 
 Vidalia 0.2.21 (with Qt 4.8.1)
-Tor 0.2.4.12-alpha (with libevent-2.0.21-stable, zlib-1.2.7 and openssl-1.0.0k)
+Tor 0.2.4.14-alpha (with libevent-2.0.21-stable, zlib-1.2.8 and openssl-1.0.0k)
 Firefox 17.0.6esr
  \_ Torbutton 1.5.2
- |_ NoScript 2.6.6.1
- |_ HTTPS-Everywhere 4.0development.6
+ |_ NoScript 2.6.6.2
+ |_ HTTPS-Everywhere 4.0development.8
  |_ PDF Viewer 0.8.1
 
 Usage
diff --git a/build-scripts/linux-alpha.mk b/build-scripts/linux-alpha.mk
index 3a15d53..7121474 100644
--- a/build-scripts/linux-alpha.mk
+++ b/build-scripts/linux-alpha.mk
@@ -15,7 +15,7 @@
 
 ## Architecture
 ARCH_TYPE=$(shell uname -m)
-BUILD_NUM=2
+BUILD_NUM=1
 PLATFORM=Linux
 
 ## Build machine specific settings
diff --git a/build-scripts/osx-alpha.mk b/build-scripts/osx-alpha.mk
index 1429c5b..7ad744d 100644
--- a/build-scripts/osx-alpha.mk
+++ b/build-scripts/osx-alpha.mk
@@ -15,7 +15,7 @@
 
 ## Architecture
 ARCH_TYPE=i386
-BUILD_NUM=2
+BUILD_NUM=1
 PLATFORM=MacOS
 
 ## Set OSX-specific backwards compatibility options
diff --git a/build-scripts/versions-alpha.mk b/build-scripts/versions-alpha.mk
index 53c146d..256f562 100644
--- a/build-scripts/versions-alpha.mk
+++ b/build-scripts/versions-alpha.mk
@@ -1,20 +1,20 @@
 #!/usr/bin/make
 
-RELEASE_VER=2.4.12-alpha
+RELEASE_VER=2.4.14-alpha
 
-ZLIB_VER=1.2.7
+ZLIB_VER=1.2.8
 OPENSSL_VER=1.0.0k
-LIBPNG_VER=1.5.15
+LIBPNG_VER=1.5.16
 QT_VER=4.8.1
 VIDALIA_VER=0.2.21
 LIBEVENT_VER=2.0.21-stable
-TOR_VER=0.2.4.12-alpha
+TOR_VER=0.2.4.14-alpha
 PIDGIN_VER=2.6.4
 FIREFOX_VER=17.0.6esr
 MOZBUILD_VER=1.5.1
 TORBUTTON_VER=1.5.2
-NOSCRIPT_VER=2.6.6.1
-HTTPSEVERYWHERE_VER=4.0development.6
+NOSCRIPT_VER=2.6.6.2
+HTTPSEVERYWHERE_VER=4.0development.8
 PDFJS_VER=0.8.1
 OBFSPROXY_VER=0.1.4
 OTR_VER=3.2.0
diff --git a/build-scripts/windows-alpha.mk b/build-scripts/windows-alpha.mk
index 76bd01e..56233c4 100644
--- a/build-scripts/windows-alpha.mk
+++ b/build-scripts/windows-alpha.mk
@@ -13,7 +13,7 @@
 ### Configuration ###
 #
 
-BUILD_NUM=2
+BUILD_NUM=1
 PLATFORM=Windows
 
 ## Location of required libraries
diff --git a/changelog.linux-2.4 b/changelog.linux-2.4
index ee2032b..5e5441a 100644
--- a/changelog.linux-2.4
+++ b/changelog.linux-2.4
@@ -1,3 +1,13 @@
+Tor Browser Bundle (2.4.14-alpha-1); suite=linux
+
+  * Update Tor to 0.2.4.14-alpha
+  * Update zlib to 1.2.8
+  * Update libpng to 1.5.16
+  * Update HTTPS Everywhere to 4.0development.8
+  * Update NoScript to 2.6.6.2
+
+ -- Erinn Clark   Wed Jun 19 21:00:13 BRT 2013
+
 Tor Browser Bundle (2.4.12-alpha-2); suite=linux
 
   * Update Firefox to 17.0.6esr
diff --git a/changelog.osx-2.4 b/changelog.osx-2.4
index c2210dd..462f044 100644
--- a/changelog.osx-2.4
+++ b/changelog.osx-2.4
@@ -1,3 +1,13 @@
+Tor Browser Bundle (2.4.14-alpha-1); suite=osx
+
+  * Update Tor to 0.2.4.14-alpha
+  * Update zlib to 1.2.8
+  * Update libpng to 1.5.16
+  * Update HTTPS Everywhere to 4.0development.8
+  * Update NoScript to 2.6.6.2
+
+ -- Erinn Clark   Wed J

[tor-commits] [torbrowser/master] Merge branch 'maint-2.4'

2013-06-19 Thread erinn
commit 7d76df2a1d0cd09f3ee2d842d87df3b71b138e6b
Merge: 3993b0d 5c4983d
Author: Erinn Clark 
Date:   Wed Jun 19 21:06:39 2013 -0300

Merge branch 'maint-2.4'

 README.LINUX-2.4|6 +++---
 README.OSX-2.4  |6 +++---
 README.WIN-2.4  |6 +++---
 build-scripts/linux-alpha.mk|2 +-
 build-scripts/osx-alpha.mk  |2 +-
 build-scripts/versions-alpha.mk |   12 ++--
 build-scripts/windows-alpha.mk  |2 +-
 changelog.linux-2.4 |   10 ++
 changelog.osx-2.4   |   10 ++
 changelog.windows-2.4   |   10 ++
 10 files changed, 48 insertions(+), 18 deletions(-)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [torbrowser/maint-2.4] update alpha bundles to 2.4.14-alpha-1

2013-06-19 Thread erinn
commit 5c4983d17b682ce84865c489c91de1c1c2523964
Author: Erinn Clark 
Date:   Wed Jun 19 21:05:09 2013 -0300

update alpha bundles to 2.4.14-alpha-1
---
 README.LINUX-2.4|6 +++---
 README.OSX-2.4  |6 +++---
 README.WIN-2.4  |6 +++---
 build-scripts/linux-alpha.mk|2 +-
 build-scripts/osx-alpha.mk  |2 +-
 build-scripts/versions-alpha.mk |   12 ++--
 build-scripts/windows-alpha.mk  |2 +-
 changelog.linux-2.4 |   10 ++
 changelog.osx-2.4   |   10 ++
 changelog.windows-2.4   |   10 ++
 10 files changed, 48 insertions(+), 18 deletions(-)

diff --git a/README.LINUX-2.4 b/README.LINUX-2.4
index 0aab8e1..a59b600 100644
--- a/README.LINUX-2.4
+++ b/README.LINUX-2.4
@@ -5,11 +5,11 @@ Included applications
 -
 
 Vidalia 0.2.21 (with Qt 4.8.1)
-Tor 0.2.4.12-alpha (with libevent-2.0.21-stable, zlib-1.2.7 and openssl-1.0.0k)
+Tor 0.2.4.14-alpha (with libevent-2.0.21-stable, zlib-1.2.8 and openssl-1.0.0k)
 Firefox 17.0.6esr
  \_ Torbutton 1.5.2
- |_ NoScript 2.6.6.1
- |_ HTTPS-Everywhere 4.0development.6
+ |_ NoScript 2.6.6.2
+ |_ HTTPS-Everywhere 4.0development.8
  |_ PDF Viewer 0.8.1
 
 Usage
diff --git a/README.OSX-2.4 b/README.OSX-2.4
index 942df88..923cb72 100644
--- a/README.OSX-2.4
+++ b/README.OSX-2.4
@@ -5,11 +5,11 @@ Included applications
 -
 
 Vidalia 0.2.21 (with Qt 4.8.1)
-Tor 0.2.4.12-alpha (with libevent-2.0.21-stable, zlib-1.2.7 and openssl-1.0.0k)
+Tor 0.2.4.14-alpha (with libevent-2.0.21-stable, zlib-1.2.8 and openssl-1.0.0k)
 Firefox 17.0.6esr
  \_ Torbutton 1.5.2
- |_ NoScript 2.6.6.1
- |_ HTTPS-Everywhere 4.0development.6
+ |_ NoScript 2.6.6.2
+ |_ HTTPS-Everywhere 4.0development.8
  |_ PDF Viewer 0.8.1
 
 Usage
diff --git a/README.WIN-2.4 b/README.WIN-2.4
index 9fd6561..f73eb59 100644
--- a/README.WIN-2.4
+++ b/README.WIN-2.4
@@ -5,11 +5,11 @@ Included applications
 -
 
 Vidalia 0.2.21 (with Qt 4.8.1)
-Tor 0.2.4.12-alpha (with libevent-2.0.21-stable, zlib-1.2.7 and openssl-1.0.0k)
+Tor 0.2.4.14-alpha (with libevent-2.0.21-stable, zlib-1.2.8 and openssl-1.0.0k)
 Firefox 17.0.6esr
  \_ Torbutton 1.5.2
- |_ NoScript 2.6.6.1
- |_ HTTPS-Everywhere 4.0development.6
+ |_ NoScript 2.6.6.2
+ |_ HTTPS-Everywhere 4.0development.8
  |_ PDF Viewer 0.8.1
 
 Usage
diff --git a/build-scripts/linux-alpha.mk b/build-scripts/linux-alpha.mk
index 3a15d53..7121474 100644
--- a/build-scripts/linux-alpha.mk
+++ b/build-scripts/linux-alpha.mk
@@ -15,7 +15,7 @@
 
 ## Architecture
 ARCH_TYPE=$(shell uname -m)
-BUILD_NUM=2
+BUILD_NUM=1
 PLATFORM=Linux
 
 ## Build machine specific settings
diff --git a/build-scripts/osx-alpha.mk b/build-scripts/osx-alpha.mk
index 1429c5b..7ad744d 100644
--- a/build-scripts/osx-alpha.mk
+++ b/build-scripts/osx-alpha.mk
@@ -15,7 +15,7 @@
 
 ## Architecture
 ARCH_TYPE=i386
-BUILD_NUM=2
+BUILD_NUM=1
 PLATFORM=MacOS
 
 ## Set OSX-specific backwards compatibility options
diff --git a/build-scripts/versions-alpha.mk b/build-scripts/versions-alpha.mk
index 53c146d..256f562 100644
--- a/build-scripts/versions-alpha.mk
+++ b/build-scripts/versions-alpha.mk
@@ -1,20 +1,20 @@
 #!/usr/bin/make
 
-RELEASE_VER=2.4.12-alpha
+RELEASE_VER=2.4.14-alpha
 
-ZLIB_VER=1.2.7
+ZLIB_VER=1.2.8
 OPENSSL_VER=1.0.0k
-LIBPNG_VER=1.5.15
+LIBPNG_VER=1.5.16
 QT_VER=4.8.1
 VIDALIA_VER=0.2.21
 LIBEVENT_VER=2.0.21-stable
-TOR_VER=0.2.4.12-alpha
+TOR_VER=0.2.4.14-alpha
 PIDGIN_VER=2.6.4
 FIREFOX_VER=17.0.6esr
 MOZBUILD_VER=1.5.1
 TORBUTTON_VER=1.5.2
-NOSCRIPT_VER=2.6.6.1
-HTTPSEVERYWHERE_VER=4.0development.6
+NOSCRIPT_VER=2.6.6.2
+HTTPSEVERYWHERE_VER=4.0development.8
 PDFJS_VER=0.8.1
 OBFSPROXY_VER=0.1.4
 OTR_VER=3.2.0
diff --git a/build-scripts/windows-alpha.mk b/build-scripts/windows-alpha.mk
index 76bd01e..56233c4 100644
--- a/build-scripts/windows-alpha.mk
+++ b/build-scripts/windows-alpha.mk
@@ -13,7 +13,7 @@
 ### Configuration ###
 #
 
-BUILD_NUM=2
+BUILD_NUM=1
 PLATFORM=Windows
 
 ## Location of required libraries
diff --git a/changelog.linux-2.4 b/changelog.linux-2.4
index ee2032b..5e5441a 100644
--- a/changelog.linux-2.4
+++ b/changelog.linux-2.4
@@ -1,3 +1,13 @@
+Tor Browser Bundle (2.4.14-alpha-1); suite=linux
+
+  * Update Tor to 0.2.4.14-alpha
+  * Update zlib to 1.2.8
+  * Update libpng to 1.5.16
+  * Update HTTPS Everywhere to 4.0development.8
+  * Update NoScript to 2.6.6.2
+
+ -- Erinn Clark   Wed Jun 19 21:00:13 BRT 2013
+
 Tor Browser Bundle (2.4.12-alpha-2); suite=linux
 
   * Update Firefox to 17.0.6esr
diff --git a/changelog.osx-2.4 b/changelog.osx-2.4
index c2210dd..462f044 100644
--- a/changelog.osx-2.4
+++ b/changelog.osx-2.4
@@ -1,3 +1,13 @@
+Tor Browser Bundle (2.4.14-alpha-1); suite=osx
+
+  * Update Tor to 0.2.4.14-alpha
+  * Update zlib to 1.2.8
+  * Update libpng to 1.5.16
+  * Update HTTPS Everywhere to 4.0development.8
+  * Update NoScript to 2.6.6.2
+
+ -- Erinn Clark   Wed J

[tor-commits] [ooni-probe/master] Update setup.py, requirements and Vagrant file

2013-06-19 Thread art
commit 3f233bfc9284bfada1ea60fb83072ccdf8eb7e29
Author: Arturo Filastò 
Date:   Wed Jun 19 23:58:07 2013 +0100

Update setup.py, requirements and Vagrant file
---
 Vagrantfile  |5 ++---
 requirements.txt |1 +
 setup.py |2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Vagrantfile b/Vagrantfile
index 90002aa..897838f 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -142,9 +142,8 @@ pip install -r requirements.txt
 echo "Installing ooniprobe"
 python setup.py install
 
-echo "Fetching all inputs"
-cd /data/ooniprobe/inputs
-make lists
+cd /usr/share/ooni/
+make geoip
 
 SCRIPT
 
diff --git a/requirements.txt b/requirements.txt
index 2dcab52..b335716 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,6 +10,7 @@ txtorcon>=0.7
 txsocksx>=0.0.2
 Pyrex>=0.9.8.6
 parsley>=1.1
+cyclone
 
 # Taken from the versions required by twisted 13.0.0 (latest)
 transaction>=1.1.1
diff --git a/setup.py b/setup.py
index 5f221d0..3c42218 100644
--- a/setup.py
+++ b/setup.py
@@ -38,7 +38,7 @@ for root, dirs, file_names in os.walk('data/'):
 for file_name in file_names:
 if not file_name.endswith('.pyc'):
 files.append(pj(root, file_name))
-data_files.append([pj(usr_share_path, root), files])
+data_files.append([pj(usr_share_path, root.replace('data/', '')), files])
 
 with open('requirements.txt') as f:
 for line in f:

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] r26225: {website} add https dist mirror and update mirrors. (in website/trunk: . include)

2013-06-19 Thread Andrew Lewman
Author: phobos
Date: 2013-06-19 21:55:38 + (Wed, 19 Jun 2013)
New Revision: 26225

Modified:
   website/trunk/include/mirrors-table.wmi
   website/trunk/update-mirrors.pl
Log:
add https dist mirror and update mirrors.


Modified: website/trunk/include/mirrors-table.wmi
===
--- website/trunk/include/mirrors-table.wmi 2013-06-19 02:04:05 UTC (rev 
26224)
+++ website/trunk/include/mirrors-table.wmi 2013-06-19 21:55:38 UTC (rev 
26225)
@@ -69,23 +69,6 @@
  
 
 
- DK
-
- Zentrum der Gesundheit
-
- Up to date
-
- - 
-http://tor.idnr.ws/dist/";>http
-http://tor.idnr.ws/";>http
- - 
- - 
- - 
- - 
-
- 
-
-
  EE
 
  CyberSIDE
@@ -222,23 +205,6 @@
  
 
 
- US
-
- hessmo
-
- Up to date
-
- - 
-http://mirror.hessmo.com/tor/dist/";>http
-http://mirror.hessmo.com/tor/";>http
- - 
- - 
- - 
- - 
-
- 
-
-
  DE
 
  
@@ -256,40 +222,6 @@
  
 
 
- DE
-
- crazyhaze.de
-
- Up to date
-
- - 
-http://tor.crazyhaze.de/dist/";>http
-http://tor.crazyhaze.de/";>http
-https://tor.crazyhaze.de/dist/";>https
-https://tor.crazyhaze.de/";>https
- - 
- - 
-
- 
-
-
- RO
-
- me0w.cc
-
- Up to date
-
- - 
-http://tor.me0w.cc/dist/";>http
-http://tor.me0w.cc/";>http
- - 
- - 
- - 
- - 
-
- 
-
-
  CH
 
  
@@ -307,23 +239,6 @@
  
 
 
- LT
-
- 
-
- Up to date
-
- - 
-http://tor.vesta.nu/dist/";>http
-http://tor.vesta.nu/";>http
- - 
- - 
- - 
- - 
-
- 
-
-
  DE
 
  
@@ -426,6 +341,23 @@
  
 
 
+ FR
+
+ 
+
+ Up to date
+
+ - 
+http://tor.mirror.chekanov.net/dist/";>http
+http://tor.mirror.chekanov.net/";>http
+ - 
+ - 
+ - 
+ - 
+
+ 
+
+
  DE
 
  chaos darmstadt
@@ -443,6 +375,23 @@
  
 
 
+ US
+
+ HackThisSite.org
+
+ Up to date
+
+ - 
+http://mirror.hackthissite.org/tor";>http
+http://tor.hackthissite.org/";>http
+ - 
+https://tor.hackthissite.org/";>https
+ - 
+ - 
+
+ 
+
+
  HU
 
  Unknown
@@ -564,13 +513,13 @@
 
  US
 
- AskApache
+ 
 
  Up to date
 
  - 
-http://tor.askapache.com/dist/";>http
-http://tor.askapache.com/";>http
+http://mirror.nametoday.me/tor/dist/";>http
+http://mirror.nametoday.me/tor/";>http
  - 
  - 
  - 
@@ -579,32 +528,15 @@
  
 
 
- RU
+ FR
 
- Soviet Anonymous
+ LazyTiger
 
  Up to date
 
-ftp://creep.im/mirrors/tor";>ftp
-http://creep.im/tor/dist/";>http
-http://creep.im/tor";>http
-https://creep.im/tor/dist/";>https
-https://creep.im/tor";>https
-rsync
-rsync
-
- 
-
-
- US
-
- 
-
- Up to date
-
  - 
-http://mirror.nametoday.me/tor/dist/";>http
-http://mirror.nametoday.me/tor/";>http
+http://tor.taiga-san.net/dist/";>http
+http://tor.taiga-san.net/";>http
  - 
  - 
  - 
@@ -664,23 +596,6 @@
  
 
 
- SE
-
- homosu
-
- Up to date
-
- - 
-http://tor.homosu.net/dist/";>http
-http://tor.homosu.net/";>http
- - 
- - 
- - 
- - 
-
- 
-
-
  DE
 
  [[:bbs:]]
@@ -732,6 +647,142 @@
  
 
 
+ AT
+
+ TechAsk.IT
+
+ Up to date
+
+ - 
+http://www.unicorncloud.org/public/torproject.org/dist";>http
+http://www.unicorncloud.org/public/torproject.org/";>http
+https://www.unicorncloud.org/public/torproject.org/dist";>https
+https://www.unicorncloud.org/public/torproject.org/";>https
+ - 
+ - 
+
+ 
+
+
+ DK
+
+ Zentrum der Gesundheit
+
+ Up to date
+
+ - 
+http://tor.idnr.ws/dist/";>http
+http://tor.idnr.ws/";>http
+ - 
+ - 
+ - 
+ - 
+
+ 
+
+
+ RO
+
+ me0w.cc
+
+ Up to date
+
+ - 
+http://tor.me0w.cc/dist/";>http
+http://tor.me0w.cc/";>http
+ - 
+ - 
+ - 
+ - 
+
+ 
+
+
+ LT
+
+ 
+
+ Up to date
+
+ - 
+http://tor.vesta.nu/dist/";>http
+http://tor.vesta.nu/";>http
+ - 
+ - 
+ - 
+ - 
+
+ 
+
+
+ US
+
+ AskApache
+
+ Up to date
+
+ - 
+http://tor.askapache.com/dist/";>http
+http://tor.askapache.com/";>http
+ - 
+ - 
+ - 
+ - 
+
+ 
+
+
+ RU
+
+ Soviet Anonymous
+
+ Up to date
+
+ftp://creep.im/mirrors/tor";>ftp
+http://creep.im/tor/dist/";>http
+http://creep.im/tor";>http
+https://creep.im/tor/dist/";>https
+https://creep.im/tor";>https
+rsync
+rsync
+
+ 
+
+
+   

[tor-commits] [tor-browser-bundle/master] Attempt to use MinGW hardening for Windows

2013-06-19 Thread mikeperry
commit 509e91fb187b4e42672e677a0ec65afbb4b87f68
Author: Mike Perry 
Date:   Wed Jun 19 11:17:13 2013 -0700

Attempt to use MinGW hardening for Windows

Too bad it causes everything to insta-crash :/.
---
 gitian/build-helpers/i686-w64-mingw32-g++ |4 
 gitian/build-helpers/i686-w64-mingw32-gcc |4 
 gitian/build-helpers/i686-w64-mingw32-ld  |9 +
 gitian/descriptors/windows/gitian-firefox.yml |   27 +++--
 gitian/descriptors/windows/gitian-tor.yml |3 +++
 5 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/gitian/build-helpers/i686-w64-mingw32-g++ 
b/gitian/build-helpers/i686-w64-mingw32-g++
new file mode 100755
index 000..e3c13fd
--- /dev/null
+++ b/gitian/build-helpers/i686-w64-mingw32-g++
@@ -0,0 +1,4 @@
+#!/bin/sh
+# Hardened mingw gcc wrapper
+
+/usr/bin/i686-w64-mingw32-g++ -Wl,--dynamicbase -Wl,--nxcompat 
-fstack-protector-all -pie -fPIE --param ssp-buffer-size=4 -fno-strict-overflow 
"$@"
diff --git a/gitian/build-helpers/i686-w64-mingw32-gcc 
b/gitian/build-helpers/i686-w64-mingw32-gcc
new file mode 100755
index 000..830e11b
--- /dev/null
+++ b/gitian/build-helpers/i686-w64-mingw32-gcc
@@ -0,0 +1,4 @@
+#!/bin/sh
+# Hardened mingw gcc wrapper
+
+/usr/bin/i686-w64-mingw32-gcc -Wl,--dynamicbase -Wl,--nxcompat 
-fstack-protector-all -pie -fPIE --param ssp-buffer-size=4 -fno-strict-overflow 
"$@"
diff --git a/gitian/build-helpers/i686-w64-mingw32-ld 
b/gitian/build-helpers/i686-w64-mingw32-ld
new file mode 100755
index 000..e085bdd
--- /dev/null
+++ b/gitian/build-helpers/i686-w64-mingw32-ld
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Hardened mingw gcc wrapper
+
+if [ -x /usr/bin/i686-w64-mingw32-ld.orig ];
+then
+  /usr/bin/i686-w64-mingw32-ld.orig --dynamicbase --nxcompat -lssp 
-L/usr/lib/gcc/i686-w64-mingw32/4.6/ "$@"
+else
+  /usr/bin/i686-w64-mingw32-ld --dynamicbase --nxcompat -lssp 
-L/usr/lib/gcc/i686-w64-mingw32/4.6/ "$@"
+fi
diff --git a/gitian/descriptors/windows/gitian-firefox.yml 
b/gitian/descriptors/windows/gitian-firefox.yml
index cbf3976..a881440 100644
--- a/gitian/descriptors/windows/gitian-firefox.yml
+++ b/gitian/descriptors/windows/gitian-firefox.yml
@@ -10,9 +10,9 @@ packages:
 - "zip"
 - "autoconf"
 - "autoconf2.13"
-- "mingw-w64"
 - "faketime"
 - "yasm"
+- "mingw-w64"
 - "g++-mingw-w64-i686"
 - "mingw-w64-tools"
 reference_datetime: "2000-01-01 00:00:00"
@@ -25,6 +25,9 @@ files:
 - "torbrowser.version"
 - "re-dzip.sh"
 - "dzip.sh"
+- "i686-w64-mingw32-gcc"
+- "i686-w64-mingw32-g++"
+- "i686-w64-mingw32-ld"
 script: |
   INSTDIR="$HOME/install/FirefoxPortable/"
   export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
@@ -39,7 +42,7 @@ script: |
   # If we ever find out that the 12.04 mingw is buggy/insufficient:
   #sudo bash -c 'echo "deb http://archive.ubuntu.com/ubuntu raring main 
restricted universe multiverse" >> /etc/apt/sources.list'
   #sudo apt-get update
-  #sudo apt-get install g++-mingw-w64-i686 mingw-w64-tools mingw-w64
+  #sudo apt-get install -y g++-mingw-w64-i686 mingw-w64-tools mingw-w64
   #
   # Build the latest MinGW-w64 headers and CRT
   # FIXME: We need sudo for all of this because otherwise
@@ -83,18 +86,20 @@ script: |
   make -f client.mk configure
   find -type f | xargs touch --date="$REFERENCE_DATETIME"
   #
-  # The build sometimes randomly fails (faketime issues?) Just restart it 
until success
+  # FIXME: MinGW doens't like being built with hardening, and Firefox doesn't
+  # like being configured with it
+  # XXX: These changes cause the exes to crash on launch.
+  #mkdir -p ~/build/bin/
+  #cp ~/build/i686* ~/build/bin/
+  #export PATH=~/build/bin:$PATH
+  # XXX: the path to ld is hardcoded in mingw.. This forces gcc's linking to
+  # use our flags:
+  #sudo mv /usr/bin/i686-w64-mingw32-ld /usr/bin/i686-w64-mingw32-ld.orig
+  #sudo cp ~/build/bin/i686-w64-mingw32-ld /usr/bin/
+  #
   make $MAKEOPTS -f client.mk build
-  while [ $? -ne 0 ];
-  do
-make $MAKEOPTS -f client.mk build
-  done
   #
   make -C obj-* package INNER_MAKE_PACKAGE=true
-  while [ $? -ne 0 ];
-  do
-make -C obj-* package INNER_MAKE_PACKAGE=true
-  done
   cp -a obj-*/dist/firefox/* $INSTDIR/App/Firefox/
   cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libgcc_s_sjlj-1.dll 
$INSTDIR/App/Firefox/
   cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libssp*.dll $INSTDIR/App/Firefox/
diff --git a/gitian/descriptors/windows/gitian-tor.yml 
b/gitian/descriptors/windows/gitian-tor.yml
index 4d7e36f..5fb0ef5 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -32,6 +32,9 @@ script: |
   export TZ=UTC
   export CFLAGS="-mwindows"
   export LDFLAGS="-mwindows"
+  # XXX: Hardening options cause the exe's to crash.. not sure why
+  #export CFLAGS="-mwindows -fstack-protector-all -fPIE -Wstack-protector 
--param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers 
-Wformat-security"
+  #export LDFLAGS="-mwindows -Wl,--dynamicbase -Wl,-

[tor-commits] [tor-browser-bundle/master] Update the TODO file.

2013-06-19 Thread mikeperry
commit 27168b1c4f305da6f0341145a0672ec1dd5100e8
Author: Mike Perry 
Date:   Wed Jun 19 11:24:23 2013 -0700

Update the TODO file.
---
 gitian/TODO |   10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gitian/TODO b/gitian/TODO
index 71f7db9..59b2d4f 100644
--- a/gitian/TODO
+++ b/gitian/TODO
@@ -17,16 +17,22 @@ Short Term:
- Windows
  - https://developer.pidgin.im/ticket/15290
  - http://stackoverflow.com/questions/13276692/safeseh-gs-on-g
+ - OpenSSL+zlib don't take cflags??
- Can we randomize stack canaries each release, etc?
+ - Windows crashes in D2D1.dll
+   - Maybe we're missing the driver blacklist from
+ https://bugzilla.mozilla.org/show_bug.cgi?id=595364
+   - Workaround: set gfx.direct2d.disabled to true for windows.
  - Custom EntryNodes issues
- Due to missing geoip file
- - Windows TBB crashes if there's a system tor installed?
-   - And/or if you install to c:\Program Files and run as non-Admin
  - Detect arch on Linux
- https://trac.torproject.org/projects/tor/ticket/3841
  - Allow people to specify NUMCPUs easier than hacking the gitian src
+ - Too many libevent libs are included.. Only need a couple
 
 Mid Term:
+ - Windows TBB crashes if there's a system tor installed?
+   - And/or if you install to c:\Program Files and run as non-Admin
  - Docs are missing
- Are they even still valid for the Vidalia-less TBB?
  - Why does KVM setup require sudo?

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor-browser-bundle/master] Remove Gitian result files from bundles. Include hashes instead.

2013-06-19 Thread mikeperry
commit a222f920ce68feac26e0527e8910e6c86d4f02bb
Author: Mike Perry 
Date:   Tue Jun 18 13:13:46 2013 -0700

Remove Gitian result files from bundles. Include hashes instead.

The Gitian result files contain information about the full set of packages 
on
the system, which changes too often and doesn't normally otherwise alter 
build
output.
---
 gitian/TODO|4 
 gitian/mkbundle-linux.sh   |4 ++--
 gitian/mkbundle-mac.sh |4 ++--
 gitian/mkbundle-windows.sh |4 ++--
 gitian/record-inputs.sh|   13 +++--
 5 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/gitian/TODO b/gitian/TODO
index b7e5ca1..84223f8 100644
--- a/gitian/TODO
+++ b/gitian/TODO
@@ -1,9 +1,5 @@
 Short Term:
  - Determinism issues
-   - including the res.yml files introduce more issues than they solve
- (Random Ubuntu package versions change too frequently)
- - Only include our own source code versions + hashes
- - Don't forget gitian-builder!
- One of the builds ended up using old Gitian descriptors somehow..
  - Refuse to build if `git diff --raw` is non-zero?
- omni.ja (which is a zip file) still doesn't always match
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index dbbcb6d..7d4d6ef 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -101,7 +101,7 @@ then
   fi
   
   cp -a build/out/tor-linux*-gbuilt.zip $GITIAN_DIR/inputs/
-  cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
+  #cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
 else
   echo 
   echo "** SKIPPING already built Tor Component of Linux Bundle (1/3 for 
Linux) **"
@@ -124,7 +124,7 @@ then
   fi
 
   cp -a build/out/tor-browser-linux*-gbuilt.zip $GITIAN_DIR/inputs/
-  cp -a result/torbrowser-linux-res.yml $GITIAN_DIR/inputs/
+  #cp -a result/torbrowser-linux-res.yml $GITIAN_DIR/inputs/
 else
   echo 
   echo "** SKIPPING already built TorBrowser Component of Linux Bundle 
(2/3 for Linux) **"
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index 9c24a0f..3e9fb35 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -84,7 +84,7 @@ then
   fi
   
   cp -a build/out/tor-mac*-gbuilt.zip $GITIAN_DIR/inputs/
-  cp -a result/tor-mac-res.yml $GITIAN_DIR/inputs/
+  #cp -a result/tor-mac-res.yml $GITIAN_DIR/inputs/
 else
   echo 
   echo "** SKIPPING already built Tor Component of Mac Bundle (1/3 for 
Mac) **"
@@ -105,7 +105,7 @@ then
   fi
 
   cp -a build/out/tor-browser-mac*-gbuilt.zip $GITIAN_DIR/inputs/
-  cp -a result/torbrowser-mac-res.yml $GITIAN_DIR/inputs/
+  #cp -a result/torbrowser-mac-res.yml $GITIAN_DIR/inputs/
 else
   echo 
   echo "** SKIPPING already built TorBrowser Component of Mac Bundle (2/3 
for Mac) **"
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index 068f671..4a2ee49 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -84,7 +84,7 @@ then
   fi
   
   cp -a build/out/tor-win32-gbuilt.zip $GITIAN_DIR/inputs/
-  cp -a result/tor-windows-res.yml $GITIAN_DIR/inputs/
+  #cp -a result/tor-windows-res.yml $GITIAN_DIR/inputs/
 else
   echo 
   echo "** SKIPPING already built Tor Component of Windows Bundle (1/3 for 
Windows) **"
@@ -105,7 +105,7 @@ then
   fi
 
   cp -a build/out/tor-browser-win32-gbuilt.zip $GITIAN_DIR/inputs/
-  cp -a result/torbrowser-windows-res.yml $GITIAN_DIR/inputs/
+  #cp -a result/torbrowser-windows-res.yml $GITIAN_DIR/inputs/
 else
   echo 
   echo "** SKIPPING already built Torbrowser Component of Windows Bundle 
(2/3 for Windows) **"
diff --git a/gitian/record-inputs.sh b/gitian/record-inputs.sh
index 709c91d..763b2ee 100755
--- a/gitian/record-inputs.sh
+++ b/gitian/record-inputs.sh
@@ -5,7 +5,7 @@
 WRAPPER_DIR=$PWD
 
 if [ -n $1 ]; then
-  INPUTS_DIR=../../gitian-builder/inputs
+  INPUTS_DIR=$PWD/../../gitian-builder/inputs
 else
   INPUTS_DIR=$1
 fi
@@ -14,13 +14,22 @@ cd $INPUTS_DIR
 
 rm -f bundle.inputs
 
+sha256sum apple* >> bundle.inputs
+sha256sum multiarch-darwin* >> bundle.inputs
+sha256sum mingw*.zip >> bundle.inputs
+echo >> bundle.inputs
 sha256sum relativelink-src.zip >> bundle.inputs
 sha256sum *-langpacks.zip >> bundle.inputs
 sha256sum noscr...@noscript.net.xpi >> bundle.inputs
 sha256sum uriloa...@pdf.js.xpi >> bundle.inputs
-
+sha256sum openssl-*gz >> bundle.inputs
+echo >> bundle.inputs
+echo "`cd zlib && git log --format=%H -1` zlib.git" >> bundle.inputs
+echo "`cd tor && git log --format=%H -1` tor.git" >> bundle.inputs
 echo "`cd torbutton && git log --format=%H -1` torbutton.git" >> bundle.inputs
 echo "`cd tor-launcher && git log --format=%H -1` tor-launcher.git" >> 
bundle.inputs
 echo "`cd https-everywhere && git log --format=%H -1` https-everywhere.git" >> 
bundle.inputs
+echo "`cd tbb-windows-installer && git log --format=%H -1` 
tbb-windows-installer.git" >> bundle.inputs
 echo "`cd $WRAPPER_DIR && git log --format=%H -1` tor-browser-bundle.git"

[tor-commits] [tor-browser-bundle/master] Fix permissions differences in omni.ja files.

2013-06-19 Thread mikeperry
commit ed2b583243848dc8241ee8a8d6fd4706ba57a61c
Author: Mike Perry 
Date:   Tue Jun 18 13:29:51 2013 -0700

Fix permissions differences in omni.ja files.
---
 gitian/TODO |2 --
 gitian/build-helpers/re-dzip.sh |2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gitian/TODO b/gitian/TODO
index 84223f8..71f7db9 100644
--- a/gitian/TODO
+++ b/gitian/TODO
@@ -7,8 +7,6 @@ Short Term:
- Only two lines are ever reordered:
  override chrome://global/content/nsTransferable.js 
chrome://global/content/nsDragAndDrop.js
  skin mozapps classic/1.0 toolkit/skin/classic/mozapps/ os=WINNT 
osversion<6
-   - webapprt/omni.ja (also a zip file) sometimes doesn't match
- - Permissions differences inside the zip file
  - Hardening options
- Validation Tools:
  - http://www.microsoft.com/en-us/download/details.aspx?id=11910.
diff --git a/gitian/build-helpers/re-dzip.sh b/gitian/build-helpers/re-dzip.sh
index 1bd55dc..0367844 100755
--- a/gitian/build-helpers/re-dzip.sh
+++ b/gitian/build-helpers/re-dzip.sh
@@ -6,6 +6,8 @@ ZIPFILE=`basename $1`
 mkdir tmp_dzip
 cd tmp_dzip
 unzip ../$1
+find . -type f -exec chmod 644 {} \;
+find . -type d -exec chmod 755 {} \;
 find . | sort | zip $ZIPOPTS -X -@ $ZIPFILE
 mv $ZIPFILE ../$1
 cd ..



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor-browser-bundle/master] Set a umask during input fetch, so langpacks and mingw inputs match.

2013-06-19 Thread mikeperry
commit 17cf0e38b0234a3e624430686bf07d9aa515e2dc
Author: Mike Perry 
Date:   Tue Jun 18 13:31:28 2013 -0700

Set a umask during input fetch, so langpacks and mingw inputs match.
---
 gitian/fetch-inputs.sh |2 ++
 1 file changed, 2 insertions(+)

diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 13230b1..a11d2cb 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -5,6 +5,8 @@
 
 . ./versions
 
+umask 0022
+
 export WRAPPER_DIR=$PWD
 
 if [ -n $1 ]; then



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties_completed] Update translations for tor-launcher-properties_completed

2013-06-19 Thread translation
commit 1c59e0c2618360e9f1d53ad6e18b7135abcae849
Author: Translation commit bot 
Date:   Wed Jun 19 18:16:43 2013 +

Update translations for tor-launcher-properties_completed
---
 pt_BR/torlauncher.properties |   30 ++
 1 file changed, 30 insertions(+)

diff --git a/pt_BR/torlauncher.properties b/pt_BR/torlauncher.properties
new file mode 100644
index 000..1bf6889
--- /dev/null
+++ b/pt_BR/torlauncher.properties
@@ -0,0 +1,30 @@
+### Copyright (c) 2013, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor
+
+torlauncher.tor_exited=Tor fechou inesperadamente.
+torlauncher.tor_controlconn_failed=Não foi possível conectar-se à porta de 
controle Tor.
+torlauncher.tor_failed_to_start=Falha ao iniciar Tor.
+torlauncher.tor_bootstrap_failed=Falha ao estabelecer uma rede de conexão 
Tor.\n\n%S
+
+torlauncher.unable_to_start_tor=Impossível iniciar Tor.
+torlauncher.tor_missing=Falta o programa de execução de Tor.
+torlauncher.torrc_missing=Falta o arquivo torrc.
+torlauncher.datadir_missing=O diretório de dados de Tor não existe.
+torlauncher.password_hash_missing=Falha ao obter a senha criptografada.
+
+torlauncher.failed_to_get_settings=Impossível recuperar as configurações de 
Tor.
+torlauncher.failed_to_save_settings=Impossível salvar as configurações de 
Tor.
+torlauncher.ensure_tor_is_running=Por favor, verifique que Tor esteja rodando.
+
+torlauncher.error_proxy_addr_missing=Você deve especificar um endereço IP ou 
um servidor, e um número de porta para configurar Tor para usar um proxy de 
acesso a Internet.
+torlauncher.error_proxy_type_missing=Você deve selecionar um tipo de proxy.
+torlauncher.error_bridges_missing=Você deve especificar uma ou mais pontes.
+
+torlauncher.connect=Conectar
+torlauncher.quit=Encerrar
+torlauncher.quit_win=Sair
+torlauncher.done=Terminado
+
+torlauncher.forAssistance=Para assistência, contacte

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties

2013-06-19 Thread translation
commit fee1bac4eaf785d60e2be7233ef40538ef9cc554
Author: Translation commit bot 
Date:   Wed Jun 19 18:16:39 2013 +

Update translations for tor-launcher-properties
---
 pt_BR/torlauncher.properties |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pt_BR/torlauncher.properties b/pt_BR/torlauncher.properties
index 70f64db..1bf6889 100644
--- a/pt_BR/torlauncher.properties
+++ b/pt_BR/torlauncher.properties
@@ -1,7 +1,7 @@
 ### Copyright (c) 2013, The Tor Project, Inc.
 ### See LICENSE for licensing information.
 
-# torlauncher.error_title=Tor Launcher
+torlauncher.error_title=Tor
 
 torlauncher.tor_exited=Tor fechou inesperadamente.
 torlauncher.tor_controlconn_failed=Não foi possível conectar-se à porta de 
controle Tor.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-greeter] Update translations for tails-greeter

2013-06-19 Thread translation
commit 5cd531c489c2689f56c7c10db09cf3192738d7ed
Author: Translation commit bot 
Date:   Wed Jun 19 18:16:25 2013 +

Update translations for tails-greeter
---
 pt_BR/pt_BR.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pt_BR/pt_BR.po b/pt_BR/pt_BR.po
index 6795330..b395265 100644
--- a/pt_BR/pt_BR.po
+++ b/pt_BR/pt_BR.po
@@ -8,13 +8,14 @@
 # bruuh , 2012
 # Killer , 2012
 # NICEcookie , 2012
+# Samuel Facchinello , 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2013-05-12 19:29+0200\n"
-"PO-Revision-Date: 2013-05-27 00:54+\n"
-"Last-Translator: Communia \n"
+"PO-Revision-Date: 2013-06-19 18:00+\n"
+"Last-Translator: Samuel Facchinello \n"
 "Language-Team: Portuguese (Brazil) 
(http://www.transifex.com/projects/p/torproject/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -36,7 +37,7 @@ msgstr "Bem-vindo ao Tails"
 
 #: ../glade/persistencewindow.glade.h:4
 msgid "Use persistence?"
-msgstr ""
+msgstr "Usar persistência?"
 
 #: ../glade/persistencewindow.glade.h:5
 msgid "Yes"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-greeter_completed] Update translations for tails-greeter_completed

2013-06-19 Thread translation
commit 06115e65d4bc07edbc1d2bb88e85e5eabca6ef22
Author: Translation commit bot 
Date:   Wed Jun 19 18:16:28 2013 +

Update translations for tails-greeter_completed
---
 pt_BR/pt_BR.po |   16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/pt_BR/pt_BR.po b/pt_BR/pt_BR.po
index 0277be4..b395265 100644
--- a/pt_BR/pt_BR.po
+++ b/pt_BR/pt_BR.po
@@ -4,16 +4,18 @@
 # 
 # Translators:
 # alkaid , 2012
+# Communia , 2013
 # bruuh , 2012
 # Killer , 2012
 # NICEcookie , 2012
+# Samuel Facchinello , 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2013-05-12 19:29+0200\n"
-"PO-Revision-Date: 2013-05-22 12:45+\n"
-"Last-Translator: runasand \n"
+"PO-Revision-Date: 2013-06-19 18:00+\n"
+"Last-Translator: Samuel Facchinello \n"
 "Language-Team: Portuguese (Brazil) 
(http://www.transifex.com/projects/p/torproject/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -55,7 +57,7 @@ msgstr "Somente leitura?"
 
 #: ../glade/persistencewindow.glade.h:9
 msgid "Wrong passphrase. Please try again."
-msgstr "Senha incorreta. Tente novamente."
+msgstr "Senha incorreta. Por favor,tente novamente."
 
 #: ../glade/persistencewindow.glade.h:10
 msgid "More options?"
@@ -69,7 +71,7 @@ msgstr "Senha do administrador"
 msgid ""
 "Enter an administration password in case you need to perform administration 
tasks.\n"
 "Otherwise it will be disabled for better security."
-msgstr "Crie uma senha do administrador caso você precise realizar tarefas 
administrativas.\nCaso contrário essa função será desabilitada por 
segurança."
+msgstr "Crie uma senha do administrador caso você precise realizar tarefas 
administrativas.\nCaso contrário, para maior segurança, essa função será 
desabilitada ."
 
 #: ../glade/optionswindow.glade.h:6
 msgid "Password:"
@@ -77,11 +79,11 @@ msgstr "Senha:"
 
 #: ../glade/optionswindow.glade.h:7
 msgid "Verify Password:"
-msgstr "Verificar Senha:"
+msgstr "Verifique a senha:"
 
 #: ../glade/optionswindow.glade.h:8
 msgid "Passwords do not match"
-msgstr "As senhas não conferem"
+msgstr "As senhas não correspondem"
 
 #: ../glade/optionswindow.glade.h:9
 msgid "Windows Camouflage"
@@ -103,7 +105,7 @@ msgstr " "
 
 #: ../glade/langpanel.glade.h:2 ../GdmGreeter/langpanel.py:42
 msgid "Language"
-msgstr "Linguagem"
+msgstr "Idioma"
 
 #: ../glade/langpanel.glade.h:3
 msgid "Locale"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/gettor] Update translations for gettor

2013-06-19 Thread translation
commit 7b789e5488a2149df0dc148b86fe80a97e6f3cb0
Author: Translation commit bot 
Date:   Wed Jun 19 18:15:05 2013 +

Update translations for gettor
---
 pt_BR/gettor.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pt_BR/gettor.po b/pt_BR/gettor.po
index fd0208e..a7a5426 100644
--- a/pt_BR/gettor.po
+++ b/pt_BR/gettor.po
@@ -7,13 +7,14 @@
 # Jacob Appelbaum , 2009
 # marcosof , 2013
 # m4lqu1570 <>, 2012
+# Samuel Facchinello , 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2013-01-19 13:40+0100\n"
-"PO-Revision-Date: 2013-06-02 16:50+\n"
-"Last-Translator: Communia \n"
+"PO-Revision-Date: 2013-06-19 18:00+\n"
+"Last-Translator: Samuel Facchinello \n"
 "Language-Team: Portuguese (Brazil) 
(http://www.transifex.com/projects/p/torproject/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -346,7 +347,7 @@ msgstr "Uma outra alternativa para extrair os arquivos 
\".z\" é renomeá-los pa
 msgid ""
 "Please reply to this mail, and tell me a single package name anywhere\n"
 "in your reply. Here's a short explanation of what these packages are:"
-msgstr ""
+msgstr "Por favor, responda este e-mail, e diga-me um nome simples de 
pacote\nna sua resposta. Uma pequena explicação sobre o que são esses 
pacotes é:"
 
 #: lib/gettor/i18n.py:222
 msgid ""

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/gettor_completed] Update translations for gettor_completed

2013-06-19 Thread translation
commit 1930b0e4166b5dcb156f30af20674e309ea43f82
Author: Translation commit bot 
Date:   Wed Jun 19 18:15:10 2013 +

Update translations for gettor_completed
---
 pt_BR/gettor.po |   25 +
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/pt_BR/gettor.po b/pt_BR/gettor.po
index 51f6142..a7a5426 100644
--- a/pt_BR/gettor.po
+++ b/pt_BR/gettor.po
@@ -7,13 +7,14 @@
 # Jacob Appelbaum , 2009
 # marcosof , 2013
 # m4lqu1570 <>, 2012
+# Samuel Facchinello , 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2013-01-19 13:40+0100\n"
-"PO-Revision-Date: 2013-06-02 16:14+\n"
-"Last-Translator: Communia \n"
+"PO-Revision-Date: 2013-06-19 18:00+\n"
+"Last-Translator: Samuel Facchinello \n"
 "Language-Team: Portuguese (Brazil) 
(http://www.transifex.com/projects/p/torproject/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -291,13 +292,13 @@ msgstr "Os pacotes poderão chegar fora de ordem! Por 
favor, tenha certeza de qu
 msgid ""
 "It was successfully understood. Your request is currently being processed.\n"
 "Your package (%s) should arrive within the next ten minutes."
-msgstr "Foi completamente entendido. Sua solicitação está sendo 
processada.\nSeu pacote (%s) deverá chegar nos próximos dez minutos."
+msgstr "Sua solicitação foi registrada com sucesso, e está em curso de 
tratamento.\nSeu pacote (%s) deverá chegar nos próximos dez minutos."
 
 #: lib/gettor/i18n.py:191
 msgid ""
 "If it doesn't arrive, the package might be too big for your mail provider.\n"
 "Try resending the mail from a GMAIL.COM, YAHOO.CN or YAHOO.COM account."
-msgstr "Se não cheguar, o pacote pode ser muito grande para seu provedor 
de\nemail. Tente reenviar sua mensagem de uma conta GMAIL.COM, YAHOO.CN ou 
YAHOO.COM."
+msgstr "Caso seu pacote não tenha chegado, pode ser em razão de ele ser 
maior do que o tamanho aceito pelo seu provedor de e-mail. Tente reenviar sua 
mensagem de uma conta GMAIL.COM, YAHOO.CN ou YAHOO.COM."
 
 #: lib/gettor/i18n.py:194
 msgid ""
@@ -326,13 +327,13 @@ msgid ""
 "your computer yet, you can download it here:\n"
 "\n"
 "http://www.7-zip.org/";
-msgstr "A maneira mais fácil de descompactar os arquivos que você recebeu 
é\ninstalar o 7-Zip, uma ferramenta grátis para 
compressão/descompressão.\nSe ainda não está instalada em seu computador, 
poderá baixá-la aqui:\n\nhttp://www.7-zip.org/";
+msgstr "A maneira mais fácil de descompactar os arquivos que você recebeu 
é\nutilizando o 7-Zip, uma ferramenta grátis para 
compressão/descompressão.\nSe ela ainda não estiver instalada em seu 
computador, você poderá baixá-la aqui:\n\nhttp://www.7-zip.org/";
 
 #: lib/gettor/i18n.py:211
 msgid ""
 "When 7-Zip is installed, you can open the .z archive you received from\n"
 "us by double-clicking on it."
-msgstr "Quando o 7-Zip está instalado, você pode abrir o arquivo .z que 
você\nrecebeu de nós dando um clique duplo nele."
+msgstr "Quando o programa 7-Zip estiver instalado, você poderá abrir o 
arquivo .z que você recebeu dando um clique duplo nele."
 
 #: lib/gettor/i18n.py:214
 msgid ""
@@ -340,13 +341,13 @@ msgid ""
 ".zip. For example, if you recevied a file called \"windows.z\", rename it to 
\n"
 "\"windows.zip\". You should then be able to extract the archive with common 
\n"
 "file archiver programs that probably are already installed on your computer."
-msgstr "Uma outra alternativa de extrair os arquivos .z é renomeá-los para 
.zip.\nPor exemplo, se você recebeu um arquivo chamado \"windows.z\", 
\nrenomei-o para \"windows.zip\". Você deve ser capaz de extrair o 
arquivo\ncom os programas de arquivos que provavelmente já estão instalados 
em seu computador."
+msgstr "Uma outra alternativa para extrair os arquivos \".z\" é renomeá-los 
para \".zip\".\nPor exemplo, se você tiver recebido um arquivo chamado 
\"windows.z\", \nrenomeie-o para \"windows.zip\". Isso provavelmente tornará 
possível extrair o arquivo utilizando um programa de descompactação mais 
comum, e talvez já instalado no seu computador. "
 
 #: lib/gettor/i18n.py:219
 msgid ""
 "Please reply to this mail, and tell me a single package name anywhere\n"
 "in your reply. Here's a short explanation of what these packages are:"
-msgstr "Por favor, responda este e-mail, e diga-me um nome simples de 
pacote\nna sua resposta. Eis uma pequena explicação sobre o que são esses 
pacotes:"
+msgstr "Por favor, responda este e-mail, e diga-me um nome simples de 
pacote\nna sua resposta. Uma pequena explicação sobre o que são esses 
pacotes é:"
 
 #: lib/gettor/i18n.py:222
 msgid ""
@@ -354,7 +355,7 @@ msgid ""
 "The Tor Browser Bundle package for Windows operating systems. If you're \n"
 "running some version of Windows, like Windows XP, Windows Vista or \n"
 "Windows 7, this is the package you

[tor-commits] [translation/vidalia_help] Update translations for vidalia_help

2013-06-19 Thread translation
commit 160b453fc5d14a10a703d68b9f1a5ce37fbdeace
Author: Translation commit bot 
Date:   Wed Jun 19 15:45:39 2013 +

Update translations for vidalia_help
---
 ka/index.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ka/index.po b/ka/index.po
index 2c4ca77..21d98a2 100644
--- a/ka/index.po
+++ b/ka/index.po
@@ -6,7 +6,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2010-06-26 16:59+0200\n"
-"PO-Revision-Date: 2013-06-19 15:10+\n"
+"PO-Revision-Date: 2013-06-19 15:20+\n"
 "Last-Translator: x0rmia \n"
 "Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/vidalia_alpha] Update translations for vidalia_alpha

2013-06-19 Thread translation
commit 1fd71eb9bbad43260084f65b5574a6c9c2ac2190
Author: Translation commit bot 
Date:   Wed Jun 19 15:45:24 2013 +

Update translations for vidalia_alpha
---
 ka/vidalia_ka.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ka/vidalia_ka.po b/ka/vidalia_ka.po
index a8b194e..9228e1b 100644
--- a/ka/vidalia_ka.po
+++ b/ka/vidalia_ka.po
@@ -5,7 +5,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2012-03-21 17:46+\n"
-"PO-Revision-Date: 2013-06-19 15:10+\n"
+"PO-Revision-Date: 2013-06-19 15:20+\n"
 "Last-Translator: runasand \n"
 "Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/vidalia] Update translations for vidalia

2013-06-19 Thread translation
commit 144898fb62281eae9287fb99ad0c9958180d626e
Author: Translation commit bot 
Date:   Wed Jun 19 15:45:19 2013 +

Update translations for vidalia
---
 ka/vidalia_ka.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ka/vidalia_ka.po b/ka/vidalia_ka.po
index ee65acf..fde1101 100755
--- a/ka/vidalia_ka.po
+++ b/ka/vidalia_ka.po
@@ -5,7 +5,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2012-03-21 17:52+\n"
-"PO-Revision-Date: 2013-06-19 15:10+\n"
+"PO-Revision-Date: 2013-06-19 15:20+\n"
 "Last-Translator: runasand \n"
 "Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torcheck] Update translations for torcheck

2013-06-19 Thread translation
commit f7b0598a0a7756de74e7f7cc2cd555b839b8f376
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:18 2013 +

Update translations for torcheck
---
 ka/torcheck.po |   56 
 1 file changed, 56 insertions(+)

diff --git a/ka/torcheck.po b/ka/torcheck.po
new file mode 100644
index 000..c8c5036
--- /dev/null
+++ b/ka/torcheck.po
@@ -0,0 +1,56 @@
+# TorCheck gettext template
+# Copyright (C) 2008-2012 The Tor Project, Inc
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2012-02-16 20:28+PDT\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "Congratulations. Your browser is configured to use Tor."
+msgstr ""
+
+msgid ""
+"Please refer to the https://www.torproject.org/\";>Tor website "
+"for further information about using Tor safely.  You are now free to browse "
+"the Internet anonymously."
+msgstr ""
+
+msgid "There is a security update available for the Tor Browser Bundle."
+msgstr ""
+
+msgid ""
+"https://www.torproject.org/download/download-easy.html\";>Click "
+"here to go to the download page"
+msgstr ""
+
+msgid "Sorry. You are not using Tor."
+msgstr ""
+
+msgid ""
+"If you are attempting to use a Tor client, please refer to the https://www.torproject.org/\";>Tor website and specifically the https://www.torproject.org/docs/faq#DoesntWork\";>instructions for "
+"configuring your Tor client."
+msgstr ""
+
+msgid "Sorry, your query failed or an unexpected response was received."
+msgstr ""
+
+msgid ""
+"A temporary service outage prevents us from determining if your source IP "
+"address is a https://www.torproject.org/\";>Tor node."
+msgstr ""
+
+msgid "Your IP address appears to be: "
+msgstr ""

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2013-06-19 Thread translation
commit ff517796f551322fc587855f3d1e3e002eeca154
Author: Translation commit bot 
Date:   Wed Jun 19 15:17:04 2013 +

Update translations for tor-launcher-network-settings
---
 ka/network-settings.dtd |   54 +++
 1 file changed, 54 insertions(+)

diff --git a/ka/network-settings.dtd b/ka/network-settings.dtd
new file mode 100644
index 000..0458e75
--- /dev/null
+++ b/ka/network-settings.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-progress] Update translations for tor-launcher-progress

2013-06-19 Thread translation
commit 1ef4c29a28e9c3c30948e848fbef0173c6700597
Author: Translation commit bot 
Date:   Wed Jun 19 15:17:01 2013 +

Update translations for tor-launcher-progress
---
 ka/progress.dtd |4 
 1 file changed, 4 insertions(+)

diff --git a/ka/progress.dtd b/ka/progress.dtd
new file mode 100644
index 000..e0dcfcc
--- /dev/null
+++ b/ka/progress.dtd
@@ -0,0 +1,4 @@
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/orbot] Update translations for orbot

2013-06-19 Thread translation
commit 4dbcc1c4f63b8631b169aa106ad9cc0cf5a71cc1
Author: Translation commit bot 
Date:   Wed Jun 19 15:15:15 2013 +

Update translations for orbot
---
 values-ka/strings.xml |   18 ++
 1 file changed, 18 insertions(+)

diff --git a/values-ka/strings.xml b/values-ka/strings.xml
new file mode 100644
index 000..0f46066
--- /dev/null
+++ b/values-ka/strings.xml
@@ -0,0 +1,18 @@
+
+
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/vidalia_installer] Update translations for vidalia_installer

2013-06-19 Thread translation
commit 2c114d78cc832cd782dcae4c252367d6fb5ef032
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:12 2013 +

Update translations for vidalia_installer
---
 ka/vidalia_ka.po |   10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/ka/vidalia_ka.po b/ka/vidalia_ka.po
index 27a9ae6..d7fa784 100755
--- a/ka/vidalia_ka.po
+++ b/ka/vidalia_ka.po
@@ -5,14 +5,14 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2008-07-12 05:29+\n"
-"PO-Revision-Date: 2010-12-05 20:21+\n"
-"Last-Translator: \n"
-"Language-Team: translati...@vidalia-project.net\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 msgctxt "BundleSetupCaption"
 msgid "${BUNDLE_NAME} setup"
@@ -237,5 +237,3 @@ msgid ""
 "Or, if you would prefer to install Tor without Firefox, simply\n"
 "press Next to continue."
 msgstr ""
-
-

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties

2013-06-19 Thread translation
commit 57e1ad308f7010ad2cd675ed6f3066b66f5147e8
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:57 2013 +

Update translations for tor-launcher-properties
---
 ka/torlauncher.properties |   30 ++
 1 file changed, 30 insertions(+)

diff --git a/ka/torlauncher.properties b/ka/torlauncher.properties
new file mode 100644
index 000..0e49bc8
--- /dev/null
+++ b/ka/torlauncher.properties
@@ -0,0 +1,30 @@
+### Copyright (c) 2013, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+# torlauncher.error_title=Tor Launcher
+
+# torlauncher.tor_exited=Tor unexpectedly exited.
+# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+# torlauncher.tor_failed_to_start=Tor failed to start.
+# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network 
connection.\n\n%S
+
+# torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
+# torlauncher.tor_missing=The Tor executable is missing.
+# torlauncher.torrc_missing=The torrc file is missing.
+# torlauncher.datadir_missing=The Tor data directory does not exist.
+# torlauncher.password_hash_missing=Failed to get hashed password.
+
+# torlauncher.failed_to_get_settings=Unable to retrieve Tor settings.\n\n%S
+# torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
+# torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
+
+# torlauncher.error_proxy_addr_missing=You must specify both an IP address or 
hostname and a port number to configure Tor to use a proxy to access the 
Internet.
+# torlauncher.error_proxy_type_missing=You must select the proxy type.
+# torlauncher.error_bridges_missing=You must specify one or more bridges.
+
+# torlauncher.connect=Connect
+# torlauncher.quit=Quit
+# torlauncher.quit_win=Exit
+# torlauncher.done=Done
+
+# torlauncher.forAssistance=For assistance, contact %S

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tsum] Update translations for tsum

2013-06-19 Thread translation
commit 7cfad3a841eff730f27b8243fb504a8a8691e569
Author: Translation commit bot 
Date:   Wed Jun 19 15:15:19 2013 +

Update translations for tsum
---
 ka/short-user-manual_ka_noimg.xhtml |  132 +++
 1 file changed, 132 insertions(+)

diff --git a/ka/short-user-manual_ka_noimg.xhtml 
b/ka/short-user-manual_ka_noimg.xhtml
new file mode 100644
index 000..681e5b7
--- /dev/null
+++ b/ka/short-user-manual_ka_noimg.xhtml
@@ -0,0 +1,132 @@
+http://www.w3.org/1999/xhtml";>
+  
+
+
+  
+  
+The Short User Manual
+This user manual contains information about how to download Tor, how to 
use it, and what to do if Tor is unable to connect to the network. If you can't 
find the answer to your question in this document, email 
h...@rt.torproject.org.
+Please note that we are providing support on a voluntary basis, and we 
get a lot of emails every single day. There is no need to worry if we don't get 
back to you straight away.
+How Tor works
+Tor is a network of virtual tunnels that allows you to improve your 
privacy and security on the Internet. Tor works by sending your traffic through 
three random servers (also known as relays) in the Tor network, before 
the traffic is sent out onto the public Internet.
+The image above illustrates a user browsing to different websites over 
Tor. The green monitors represent relays in the Tor network, while the three 
keys represent the layers of encryption between the user and each relay.
+Tor will anonymize the origin of your traffic, and it will encrypt 
everything between you and the Tor network. Tor will also encrypt your traffic 
inside the Tor network, but it cannot encrypt your traffic between the Tor 
network and its final destination.
+If you are communicating sensitive information, for example when 
logging on to a website with a username and password, make sure that you are 
using HTTPS (e.g. https://torproject.org/, not 
http://torproject.org/).
+How to download Tor
+The bundle we recommend to most users is the https://www.torproject.org/projects/torbrowser.html";>Tor Browser 
Bundle. This bundle contains a browser preconfigured to safely browse the 
Internet through Tor, and requires no installation. You download the bundle, 
extract the archive, and start Tor.
+There are two different ways to get hold of the Tor software. You can 
either browse to the https://www.torproject.org/";>Tor Project 
website and download it there, or you can use GetTor, the email 
autoresponder.
+How to get Tor via email
+To receive the English Tor Browser Bundle for Windows, send an email to 
get...@torproject.org with windows in the body of the message. 
You can leave the subject blank.
+You can also request the Tor Browser Bundle for Mac OS X (write 
macos-i386), and Linux (write linux-i386 for 
32-bit systems or linux-x86_64 for 64-bit systems).
+If you want a translated version of Tor, write help 
instead. You will then receive an email with instructions and a list of 
available languages.
+Note: The Tor Browser Bundles for Linux and Mac OS X 
are rather large, and you will not be able to receive any of these bundles with 
a Gmail, Hotmail or Yahoo account. If you cannot receive the bundle you want, 
send an email to h...@rt.torproject.org and we will give you a list of website 
mirrors to use.
+Tor for smartphones
+You can get Tor on your Android device by installing the package named 
Orbot. For information about how to download and install Orbot, please 
see the https://www.torproject.org/docs/android.html.en";>Tor Project 
website.
+We also have experimental packages for https://www.torproject.org/docs/N900.html.en";>Nokia Maemo/N900 and http://sid77.slackware.it/iphone/";>Apple iOS.
+How to verify that 
you have the right version
+Before running the Tor Browser Bundle, you should make sure that you 
have the right version.
+The software you receive is accompanied by a file with the same name as 
the bundle and the extension .asc. This .asc file is a GPG 
signature, and will allow you to verify the file you've downloaded is exactly 
the one that we intended you to get.
+Before you can verify the signature, you will have to download and 
install GnuPG:
+Windows: http://gpg4win.org/download.html";>http://gpg4win.org/download.htmlMac
 OS X: http://macgpg.sourceforge.net/";>http://macgpg.sourceforge.net/Linux:
 Most Linux distributions come with GnuPG preinstalled.
+Please note that you may need to edit the paths and the commands used 
below to get it to work on your system.
+Erinn Clark signs the Tor Browser Bundles with key 0x63FEE659. To 
import Erinn's key, run:
+
+  gpg --keyserver hkp://keys.gnupg.net  --recv-keys 0x63FEE659
+
+
+After importing the key, verify that the fingerprint is correct:
+
+  gpg  --fingerprint 0x63FEE659
+
+
+You should see:
+
+  pub   2048R/63FEE659 2003-10-16
+  

[tor-commits] [translation/mat-gui] Update translations for mat-gui

2013-06-19 Thread translation
commit 2c5e45228d5e2f652f46af7696e933de8cf25d68
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:53 2013 +

Update translations for mat-gui
---
 ka.po |  177 +
 1 file changed, 177 insertions(+)

diff --git a/ka.po b/ka.po
new file mode 100644
index 000..11b25f2
--- /dev/null
+++ b/ka.po
@@ -0,0 +1,177 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2013-01-05 20:03+0100\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: mat-gui:95 mat-gui:563 mat-gui:579
+msgid "Ready"
+msgstr ""
+
+#: mat-gui:107
+msgid "Add"
+msgstr ""
+
+#: mat-gui:109 mat-gui:183
+msgid "Add files"
+msgstr ""
+
+#: mat-gui:113 mat-gui:203 mat-gui:308 mat-gui:311 mat-gui:555 mat-gui:557
+#: mat-gui:573 mat-gui:575
+msgid "Clean"
+msgstr ""
+
+#: mat-gui:115
+msgid "Clean selected files"
+msgstr ""
+
+#: mat-gui:119 mat-gui:214
+msgid "Check"
+msgstr ""
+
+#: mat-gui:121
+msgid "Check selected files for harmful meta"
+msgstr ""
+
+#: mat-gui:125 mat-gui:185
+msgid "Quit"
+msgstr ""
+
+#: mat-gui:137
+msgid "Path"
+msgstr ""
+
+#: mat-gui:137 mat-gui:363
+msgid "Filename"
+msgstr ""
+
+#: mat-gui:137 mat-gui:365
+msgid "Mimetype"
+msgstr ""
+
+#: mat-gui:137
+msgid "State"
+msgstr ""
+
+#: mat-gui:138
+msgid "Cleaned file"
+msgstr ""
+
+#: mat-gui:182
+msgid "Files"
+msgstr ""
+
+#: mat-gui:188
+msgid "Edit"
+msgstr ""
+
+#: mat-gui:189
+msgid "Clear the filelist"
+msgstr ""
+
+#: mat-gui:192 mat-gui:447
+msgid "Preferences"
+msgstr ""
+
+#: mat-gui:195
+msgid "Process"
+msgstr ""
+
+#: mat-gui:218
+msgid "Help"
+msgstr ""
+
+#: mat-gui:219 mat-gui:395
+msgid "Supported formats"
+msgstr ""
+
+#: mat-gui:220
+msgid "About"
+msgstr ""
+
+#: mat-gui:241
+msgid "Choose files"
+msgstr ""
+
+#: mat-gui:248
+msgid "All files"
+msgstr ""
+
+#: mat-gui:255
+msgid "Supported files"
+msgstr ""
+
+#: mat-gui:297
+msgid "unknow"
+msgstr ""
+
+#: mat-gui:313 mat-gui:559
+msgid "Dirty"
+msgstr ""
+
+#: mat-gui:343
+msgid "Not-supported"
+msgstr ""
+
+#: mat-gui:381
+msgid "This software was coded during the GSoC 2011"
+msgstr ""
+
+#: mat-gui:386
+msgid "Website"
+msgstr ""
+
+#: mat-gui:461
+msgid "Force Clean"
+msgstr ""
+
+#: mat-gui:464
+msgid "Do not check if already clean before cleaning"
+msgstr ""
+
+#: mat-gui:468
+msgid "Backup"
+msgstr ""
+
+#: mat-gui:471
+msgid "Keep a backup copy"
+msgstr ""
+
+#: mat-gui:474
+msgid "Reduce PDF quality"
+msgstr ""
+
+#: mat-gui:477
+msgid "Reduce the produced PDF size and quality"
+msgstr ""
+
+#: mat-gui:480
+msgid "Add unsupported file to archives"
+msgstr ""
+
+#: mat-gui:484
+msgid "Add non-supported (and so non-anonymised) file to output archive"
+msgstr ""
+
+#: mat-gui:554
+#, python-format
+msgid "Checking %s..."
+msgstr ""
+
+#: mat-gui:572
+#, python-format
+msgid "Cleaning %s..."
+msgstr ""

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/vidalia_help] Update translations for vidalia_help

2013-06-19 Thread translation
commit 07cc2021c2cbb54505410c47700634b0b3e2c8b3
Author: Translation commit bot 
Date:   Wed Jun 19 15:15:52 2013 +

Update translations for vidalia_help
---
 ka/bridges.po |   10 --
 ka/config.po  |   22 --
 ka/index.po   |   13 ++---
 ka/links.po   |   10 --
 ka/log.po |   10 --
 ka/netview.po |   10 --
 ka/running.po |   10 --
 ka/server.po  |   10 --
 ka/services.po|   10 --
 ka/troubleshooting.po |   10 --
 10 files changed, 46 insertions(+), 69 deletions(-)

diff --git a/ka/bridges.po b/ka/bridges.po
index cbefbf1..05087ca 100644
--- a/ka/bridges.po
+++ b/ka/bridges.po
@@ -5,14 +5,14 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2010-06-26 16:58+0200\n"
-"PO-Revision-Date: 2010-11-30 05:02+\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #. type: Content of: 
 #: en/bridges.html:16
@@ -98,5 +98,3 @@ msgid ""
 "Configuring more than one bridge address will make your Tor connection more "
 "stable, in case some of the bridges become unreachable."
 msgstr ""
-
-
diff --git a/ka/config.po b/ka/config.po
index 607f10a..35ac649 100644
--- a/ka/config.po
+++ b/ka/config.po
@@ -5,14 +5,14 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2010-06-26 16:58+0200\n"
-"PO-Revision-Date: 2010-12-21 22:40+\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #. type: Content of: 
 #: en/config.html:16
@@ -135,14 +135,10 @@ msgstr ""
 #. type: Content of: 
 #: en/config.html:89
 msgid ""
-"Even if you do not know any bridge relay addresses, checking this checkbox "
-"may still be helpful. Tor will encrypt its directory requests, which can "
-"defeat blocking mechanisms that try to filter Tor's requests for information"
-" about other relays. If connections to normal Tor relays are also blocked, "
-"then you will need to learn a bridge relay address somehow and add it here. "
-"See the help topic on finding bridge "
-"relays for more information on how to learn new bridge relay addresses "
-"and fingerprints."
+"If connections to normal Tor relays are blocked, then you will need to learn"
+" a bridge relay address somehow and add it here. See the help topic on finding bridge relays for more information"
+" on how to learn new bridge relay addresses and fingerprints."
 msgstr ""
 
 #. type: Content of: 
@@ -302,5 +298,3 @@ msgid ""
 "Hidden services allow you to provide any kind of TCP-based service, e.g.  an"
 " HTTP service, to others without revealing your IP address."
 msgstr ""
-
-
diff --git a/ka/index.po b/ka/index.po
index 9dd73ea..2c4ca77 100644
--- a/ka/index.po
+++ b/ka/index.po
@@ -1,23 +1,24 @@
 # 
 # Translators:
+# x0rmia , 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2010-06-26 16:59+0200\n"
-"PO-Revision-Date: 2010-11-30 05:02+\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
+"PO-Revision-Date: 2013-06-19 15:10+\n"
+"Last-Translator: x0rmia \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #. type: Content of: 
 #: en/index.html:16
 msgid "Vidalia Help"
-msgstr ""
+msgstr "Vidalia-ს დახმარება"
 
 #. type: Content of: 
 #: en/index.html:20
@@ -44,5 +45,3 @@ msgid ""
 "See the Helpful Links topic for some places you "
 "can visit to find additional help and information about Vidalia and Tor."
 msgstr ""
-
-
diff --git a/ka/links.po b/ka/links.po
index 8fdeca6..895070d 100644
--- a/ka/links.po
+++ b/ka/links.po
@@ -5,14 +5,14 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date

[tor-commits] [translation/https_everywhere] Update translations for https_everywhere

2013-06-19 Thread translation
commit 57e885c7baa8c362ede59c150baf96653fddd982
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:29 2013 +

Update translations for https_everywhere
---
 ka/https-everywhere.dtd|   37 +
 ka/https-everywhere.properties |6 +++
 ka/ssl-observatory.dtd |   86 
 3 files changed, 129 insertions(+)

diff --git a/ka/https-everywhere.dtd b/ka/https-everywhere.dtd
new file mode 100644
index 000..b0dfb95
--- /dev/null
+++ b/ka/https-everywhere.dtd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ka/https-everywhere.properties b/ka/https-everywhere.properties
new file mode 100644
index 000..4c9ff3d
--- /dev/null
+++ b/ka/https-everywhere.properties
@@ -0,0 +1,6 @@
+# https-everywhere.menu.globalEnable = Enable HTTPS Everywhere
+# https-everywhere.menu.globalDisable = Disable HTTPS Everywhere
+# https-everywhere.menu.enableDisable = Enable / Disable Rules
+# https-everywhere.menu.noRules = (No Rules for This Page)
+# https-everywhere.menu.unknownRules = (Rules for This Page Unknown)
+# https-everywhere.toolbar.hint = HTTPS Everywhere is now active. You can 
toggle it on a site-by-site basis by clicking the icon in the address bar.
diff --git a/ka/ssl-observatory.dtd b/ka/ssl-observatory.dtd
new file mode 100644
index 000..d832b69
--- /dev/null
+++ b/ka/ssl-observatory.dtd
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbirdy] Update translations for torbirdy

2013-06-19 Thread translation
commit 71e39c4e0bf0f1d9c432f1c6571d2346a2f2b1ab
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:48 2013 +

Update translations for torbirdy
---
 ka/torbirdy.dtd|   59 
 ka/torbirdy.properties |   19 
 2 files changed, 78 insertions(+)

diff --git a/ka/torbirdy.dtd b/ka/torbirdy.dtd
new file mode 100644
index 000..03f5751
--- /dev/null
+++ b/ka/torbirdy.dtd
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ka/torbirdy.properties b/ka/torbirdy.properties
new file mode 100644
index 000..cbdb5b2
--- /dev/null
+++ b/ka/torbirdy.properties
@@ -0,0 +1,19 @@
+# torbirdy.name=TorBirdy
+
+# torbirdy.enabled.tor=TorBirdy Enabled:Tor
+# torbirdy.enabled.jondo=TorBirdy Enabled:JonDo
+# torbirdy.enabled.custom=TorBirdy Enabled:Custom Proxy
+# torbirdy.enabled.torification=TorBirdy Enabled:Transparent Torification
+# torbirdy.enabled.whonix=TorBirdy Enabled:Whonix
+# torbirdy.disabled=TorBirdy:Disabled!
+
+# torbirdy.email.prompt=TorBirdy has disabled Thunderbird's auto-configuration 
wizard to protect your anonymity.\n\nThe recommended security settings for %S 
have been set.\n\nYou can now configure the other account settings manually.
+
+# torbirdy.email.advanced=Please note that changing the advanced settings of 
TorBirdy is NOT recommended.\n\nYou should only continue if you are sure of 
what you are doing.
+# torbirdy.email.advanced.nextwarning=Show this warning next time
+# torbirdy.email.advanced.title=TorBirdy Advanced Settings
+
+# torbirdy.restart=For the time zone preference to take effect, please close 
Thunderbird and start it again.
+
+# torbirdy.firstrun=You are now running TorBirdy.\n\nTo help protect your 
anonymity, TorBirdy will enforce the Thunderbird settings it has set, 
preventing them from being changed by you or by any add-on. There are some 
settings that can be changed and those are accessed through TorBirdy's 
preferences dialog. When TorBirdy is uninstalled or disabled, all settings that 
it changes are reset to their default values (the values prior to TorBirdy's 
install).\n\nIf you are a new user, it is recommended that you read through the 
TorBirdy website to understand what we are trying to accomplish with TorBirdy 
for our users.
+# torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/liveusb-creator] Update translations for liveusb-creator

2013-06-19 Thread translation
commit 23558bbf20d256010c2d0894df853192183d29d0
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:35 2013 +

Update translations for liveusb-creator
---
 ka/ka.po |  549 ++
 1 file changed, 549 insertions(+)

diff --git a/ka/ka.po b/ka/ka.po
new file mode 100644
index 000..c62c8b4
--- /dev/null
+++ b/ka/ka.po
@@ -0,0 +1,549 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2013-02-14 16:07+0100\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../liveusb/dialog.py:150 ../liveusb/launcher_ui.py:149
+#, python-format
+msgid "%(distribution)s LiveUSB Creator"
+msgstr ""
+
+#: ../liveusb/gui.py:758
+#, python-format
+msgid "%(filename)s selected"
+msgstr ""
+
+#: ../liveusb/creator.py:1018
+#, python-format
+msgid "%s already bootable"
+msgstr ""
+
+#: ../liveusb/launcher_ui.py:156
+msgid ""
+"http://www.w3.org/TR/REC-html40/strict.dtd\";>\n"
+"\n"
+"p, li { white-space: pre-wrap; }\n"
+"\n"
+"Need help? Read the documentation."
+msgstr ""
+
+#: ../liveusb/launcher_ui.py:151
+msgid ""
+"http://www.w3.org/TR/REC-html40/strict.dtd\";>\n"
+"\n"
+"p, li { white-space: pre-wrap; }\n"
+"\n"
+"Copy the running Tails onto a USB stick. All data on the 
target drive will be lost."
+msgstr ""
+
+#: ../liveusb/launcher_ui.py:153
+msgid ""
+"http://www.w3.org/TR/REC-html40/strict.dtd\";>\n"
+"\n"
+"p, li { white-space: pre-wrap; }\n"
+"\n"
+"Copy the running Tails onto an already installed Tails USB 
stick. Other partitions found on the stick are 
preserved."
+msgstr ""
+
+#: ../liveusb/launcher_ui.py:155
+msgid ""
+"http://www.w3.org/TR/REC-html40/strict.dtd\";>\n"
+"\n"
+"p, li { white-space: pre-wrap; }\n"
+"\n"
+"Upgrade an already installed Tails USB stick from a new ISO 
image."
+msgstr ""
+
+#: ../liveusb/dialog.py:154
+msgid "Alt+B"
+msgstr ""
+
+#: ../liveusb/dialog.py:153
+msgid "Browse"
+msgstr ""
+
+#: ../liveusb/dialog.py:160
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system.  Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+
+#: ../liveusb/creator.py:1120 ../liveusb/creator.py:1383
+#, python-format
+msgid "Calculating the SHA1 of %s"
+msgstr ""
+
+#: ../liveusb/creator.py:1331
+msgid "Cannot find"
+msgstr ""
+
+#: ../liveusb/creator.py:574
+#, python-format
+msgid "Cannot find device %s"
+msgstr ""
+
+#: ../liveusb/launcher_ui.py:150
+msgid ""
+"Clone\n"
+"&&\n"
+"Install"
+msgstr ""
+
+#: ../liveusb/launcher_ui.py:152
+msgid ""
+"Clone\n"
+"&&\n"
+"Upgrade"
+msgstr ""
+
+#: ../liveusb/dialog.py:165
+msgid "Create Live USB"
+msgstr ""
+
+#: ../liveusb/creator.py:429
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr ""
+
+#: ../liveusb/gui.py:534
+msgid ""
+"Device is not yet mounted, so we cannot determine the amount of free space."
+"  Setting a maximum limit of 8G for the persistent storage."
+msgstr ""
+
+#: ../liveusb/gui.py:197
+#, python-format
+msgid "Device is too small: it must be at least %s MiB."
+msgstr ""
+
+#: ../liveusb/dialog.py:157
+#, python-format
+msgid "Download %(distribution)s"
+msgstr ""
+
+#: ../liveusb/gui.py:732
+msgid "Download complete!"
+msgstr ""
+
+#: ../liveusb/gui.py:736
+msgid "Download failed: "
+msgstr ""
+
+#: ../liveusb/gui.py:84
+#, python-format
+msgid "Downloading %s..."
+msgstr ""
+
+#: ../liveusb/creator.py:1116
+msgid "Drive is a loopback, skipping MBR reset"
+msgstr ""
+
+#: ../liveusb/creator.py:1196
+msgid "Error probing device"
+msgstr ""
+
+#: ../liveusb/gui.py:226
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device.  Unable to "
+"continue."
+msgstr ""
+
+#: ../liveusb/creator.py:405
+msgid ""
+"Error: The SHA1 of your Live CD is invalid.  You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+
+#: ../liveusb/creator.py:144
+msgid "Extracting live image to USB device..."
+msgstr ""
+
+#: ../liveusb/creator.py:1061
+#, python-format
+msgid "Formatting %(device)s as FAT32"
+msgstr ""
+
+#: ../liveusb/creator.py:139
+msgid "ISO MD5 checksum passed"
+msgstr ""
+
+#: ../liveusb/creator.py:137
+msgid "ISO MD5 checksum verification failed"
+msgstr ""
+
+#: ../liveusb/dialog.py:156
+msgid ""
+"If you do not select an existing Live ISO, the selected release wil

[tor-commits] [translation/tails-greeter] Update translations for tails-greeter

2013-06-19 Thread translation
commit dea5eb9dd45752d6a174378fa68017574027aa58
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:43 2013 +

Update translations for tails-greeter
---
 ka/ka.po |  138 ++
 1 file changed, 138 insertions(+)

diff --git a/ka/ka.po b/ka/ka.po
new file mode 100644
index 000..019a375
--- /dev/null
+++ b/ka/ka.po
@@ -0,0 +1,138 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2013-05-12 19:29+0200\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../glade/persistencewindow.glade.h:1
+msgid "Forward"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:2 ../glade/optionswindow.glade.h:1
+msgid "Login"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:3 ../glade/optionswindow.glade.h:2
+msgid "Welcome to Tails"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:4
+msgid "Use persistence?"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:5
+msgid "Yes"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:6
+msgid "No"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:7
+msgid "Passphrase:"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:8
+msgid "Read-Only?"
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:9
+msgid "Wrong passphrase. Please try again."
+msgstr ""
+
+#: ../glade/persistencewindow.glade.h:10
+msgid "More options?"
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:3
+msgid "Administration password"
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:4
+msgid ""
+"Enter an administration password in case you need to perform administration 
tasks.\n"
+"Otherwise it will be disabled for better security."
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:6
+msgid "Password:"
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:7
+msgid "Verify Password:"
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:8
+msgid "Passwords do not match"
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:9
+msgid "Windows Camouflage"
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:10
+msgid ""
+"This option makes Tails look more like Microsoft Windows XP. This may be "
+"useful in public places in order to avoid attracting suspicion."
+msgstr ""
+
+#: ../glade/optionswindow.glade.h:11
+msgid "Activate Microsoft Windows XP Camouflage"
+msgstr ""
+
+#: ../glade/langpanel.glade.h:1
+msgid " "
+msgstr ""
+
+#: ../glade/langpanel.glade.h:2 ../GdmGreeter/langpanel.py:42
+msgid "Language"
+msgstr ""
+
+#: ../glade/langpanel.glade.h:3
+msgid "Locale"
+msgstr ""
+
+#: ../glade/langpanel.glade.h:4
+msgid "Layout"
+msgstr ""
+
+#: ../GdmGreeter/persistence.py:59
+#, python-format
+msgid ""
+"live-persist failed with return code %(returncode)s:\n"
+"%(stderr)s"
+msgstr ""
+
+#: ../GdmGreeter/persistence.py:99
+#, python-format
+msgid ""
+"cryptsetup failed with return code %(returncode)s:\n"
+"%(stdout)s\n"
+"%(stderr)s"
+msgstr ""
+
+#: ../GdmGreeter/persistence.py:124
+#, python-format
+msgid ""
+"live-persist failed with return code %(returncode)s:\n"
+"%(stdout)s\n"
+"%(stderr)s"
+msgstr ""
+
+#: ../GdmGreeter/langpanel.py:124 ../GdmGreeter/langpanel.py:148
+#: ../GdmGreeter/langpanel.py:181
+msgid "Other..."
+msgstr ""

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-persistence-setup] Update translations for tails-persistence-setup

2013-06-19 Thread translation
commit ca6ccea8fec22671a7e94c0036e20964398e1306
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:39 2013 +

Update translations for tails-persistence-setup
---
 ka/ka.po |  326 ++
 1 file changed, 326 insertions(+)

diff --git a/ka/ka.po b/ka/ka.po
new file mode 100644
index 000..1fbb039
--- /dev/null
+++ b/ka/ka.po
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Tails developers
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2012-11-27 21:00+0100\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:48
+msgid "Personal Data"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:50
+msgid "Keep files stored in the `Persistent' directory"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:58
+msgid "GnuPG"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:60
+msgid "GnuPG keyrings and configuration"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:68
+msgid "SSH Client"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:70
+msgid "SSH keys, configuration and known hosts"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:78
+msgid "Pidgin"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:80
+msgid "Pidgin profiles and OTR keyring"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:88
+msgid "Claws Mail"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:90
+msgid "Claws Mail profiles and locally stored email"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:98
+msgid "GNOME Keyring"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:100
+msgid "Secrets stored by GNOME Keyring"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:108
+msgid "Network Connections"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:110
+msgid "Configuration of network devices and connections"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:118
+msgid "Browser bookmarks"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:120
+msgid "Bookmarks saved in Iceweasel browser"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:128
+msgid "APT Packages"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:130
+msgid "Packages downloaded by APT"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:138
+msgid "APT Lists"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:140
+msgid "Lists downloaded by APT"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:148
+msgid "Dotfiles"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:150
+msgid ""
+"Symlink into $HOME every file or directory found in the `dotfiles' directory"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:259
+msgid ""
+"The device Tails is running from cannot be found. Maybe you used the `toram'"
+" option?"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:284
+msgid "'Unparseable partition path.'"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:298
+msgid "Setup Tails persistent volume"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:442
+#, perl-format
+msgid "Device %s already has a persistent volume."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:450
+#, perl-format
+msgid "Device %s has not enough unallocated space."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:458 ../lib/Tails/Persistence/Setup.pm:472
+#, perl-format
+msgid "Device %s has no persistent volume."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:464
+msgid ""
+"Cannot delete the persistent volume while in use. You should restart Tails "
+"without persistence."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:483
+msgid "Persistence volume is not unlocked."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:488
+msgid "Persistence volume is not mounted."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:493
+msgid "Persistence volume is not readable. Permissions or ownership problems?"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:498
+msgid "Persistence volume is not writable. Maybe it was mounted read-only?"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:507
+#, perl-format
+msgid "Tails is running from non-USB device %s."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:513
+#, perl-format
+msgid "Device %s is 

[tor-commits] [translation/whisperback] Update translations for whisperback

2013-06-19 Thread translation
commit 7e0da3f59971384e450ce01b5c45092fb794fc84
Author: Translation commit bot 
Date:   Wed Jun 19 15:16:22 2013 +

Update translations for whisperback
---
 ka/ka.po |  199 ++
 1 file changed, 199 insertions(+)

diff --git a/ka/ka.po b/ka/ka.po
new file mode 100644
index 000..e9c0e55
--- /dev/null
+++ b/ka/ka.po
@@ -0,0 +1,199 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2013-03-26 15:50+0100\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. XXX use a better exception
+#: ../whisperBack/whisperback.py:63
+#, python-format
+msgid "Invalid contact email: %s"
+msgstr ""
+
+#: ../whisperBack/whisperback.py:80
+#, python-format
+msgid "Invalid contact OpenPGP key: %s"
+msgstr ""
+
+#: ../whisperBack/whisperback.py:82
+msgid "Invalid contact OpenPGP public key block"
+msgstr ""
+
+#: ../whisperBack/exceptions.py:41
+#, python-format
+msgid ""
+"The %s variable was not found in any of the configuration files "
+"/etc/whisperback/config.py, ~/.whisperback/config.py, ./config.py"
+msgstr ""
+
+#: ../whisperBack/gui.py:151
+msgid "Unable to load a valid configuration."
+msgstr ""
+
+#: ../whisperBack/gui.py:217
+msgid "Sending mail..."
+msgstr ""
+
+#: ../whisperBack/gui.py:218
+msgid "Sending mail"
+msgstr ""
+
+#. pylint: disable=C0301
+#: ../whisperBack/gui.py:220
+msgid "This could take a while..."
+msgstr ""
+
+#: ../whisperBack/gui.py:234
+msgid "The contact email adress doesn't seem valid."
+msgstr ""
+
+#: ../whisperBack/gui.py:251
+msgid "Unable to send the mail: SMTP error."
+msgstr ""
+
+#: ../whisperBack/gui.py:253
+msgid "Unable to connect to the server."
+msgstr ""
+
+#: ../whisperBack/gui.py:255
+msgid "Unable to create or to send the mail."
+msgstr ""
+
+#: ../whisperBack/gui.py:258
+msgid ""
+"\n"
+"\n"
+"The bug report could not be sent, likely due to network problems. Please try 
to reconnect to the network and click send again.\n"
+"\n"
+"If it does not work, you will be offered to save the bug report."
+msgstr ""
+
+#: ../whisperBack/gui.py:271
+msgid "Your message has been sent."
+msgstr ""
+
+#: ../whisperBack/gui.py:278
+msgid "An error occured during encryption."
+msgstr ""
+
+#: ../whisperBack/gui.py:298
+#, python-format
+msgid "Unable to save %s."
+msgstr ""
+
+#. XXX: fix string
+#: ../whisperBack/gui.py:322
+#, python-format
+msgid ""
+"The bug report could not be sent, likely due to network problems.\n"
+"\n"
+"As a work-around you can save the bug report as a file on a USB drive and try 
to send it to us at %s from your email account using another system. Note that 
your bug report will not be anonymous when doing so unless you take further 
steps yourself (e.g. using Tor with a throw-away email account).\n"
+"\n"
+"Do you want to save the bug report to a file?"
+msgstr ""
+
+#: ../whisperBack/gui.py:386 ../data/whisperback.ui.h:21
+msgid "WhisperBack"
+msgstr ""
+
+#: ../whisperBack/gui.py:387 ../data/whisperback.ui.h:2
+msgid "Send feedback in an encrypted mail."
+msgstr ""
+
+#: ../whisperBack/gui.py:390
+msgid "Copyright © 2009-2012 Tails developpers (ta...@boum.org)"
+msgstr ""
+
+#: ../whisperBack/gui.py:391
+msgid "Tails developers "
+msgstr ""
+
+#: ../whisperBack/gui.py:392
+msgid "translator-credits"
+msgstr ""
+
+#: ../whisperBack/gui.py:419
+msgid "This doesn't seem to be a valid URL or OpenPGP key."
+msgstr ""
+
+#: ../data/whisperback.ui.h:1
+msgid "Copyright © 2009-2012 ta...@boum.org"
+msgstr ""
+
+#: ../data/whisperback.ui.h:3
+msgid "https://tails.boum.org/";
+msgstr ""
+
+#: ../data/whisperback.ui.h:4
+msgid ""
+"WhisperBack - Send feedback in an encrypted mail\n"
+"Copyright (C) 2009-2012 Tails developers \n"
+"\n"
+"This program is  free software; you can redistribute  it and/or modify\n"
+"it under the  terms of the GNU General Public  License as published by\n"
+"the Free Software Foundation; either  version 3 of the License, or (at\n"
+"your option) any later version.\n"
+"\n"
+"This program  is distributed in the  hope that it will  be useful, but\n"
+"WITHOUT   ANY  WARRANTY;   without  even   the  implied   warranty  of\n"
+"MERCHANTABILITY  or FITNESS  FOR A  PARTICULAR PURPOSE.   See  the GNU\n"
+"General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program.  If not, see .\n"
+msgstr ""
+
+#: ../data/whi

[tor-commits] [translation/bridgedb] Update translations for bridgedb

2013-06-19 Thread translation
commit 26e24cf17d11c82dbce63838cc656682f81ee736
Author: Translation commit bot 
Date:   Wed Jun 19 15:15:03 2013 +

Update translations for bridgedb
---
 ka/bridgedb.po |  100 
 1 file changed, 100 insertions(+)

diff --git a/ka/bridgedb.po b/ka/bridgedb.po
new file mode 100644
index 000..c8c2f29
--- /dev/null
+++ b/ka/bridgedb.po
@@ -0,0 +1,100 @@
+# Translations template for BridgeDB.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the BridgeDB project.
+# 
+# Translators:
+# x0rmia , 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2013-03-27 21:41+\n"
+"PO-Revision-Date: 2013-06-19 15:10+\n"
+"Last-Translator: x0rmia \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/bridgedb/templates/base.html:33
+msgid "What are bridges?"
+msgstr ""
+
+#: lib/bridgedb/templates/base.html:34
+#, python-format
+msgid ""
+"%s Bridge relays %s are Tor relays that help you circumvent censorship."
+msgstr ""
+
+#: lib/bridgedb/templates/base.html:39
+msgid "I need an alternative way of getting bridges!"
+msgstr ""
+
+#: lib/bridgedb/templates/base.html:40
+#, python-format
+msgid ""
+"Another way to find public bridge addresses is to send an email (from a %s "
+"or a %s address) to %s with the line 'get bridges' by itself in the body of "
+"the mail."
+msgstr ""
+
+#: lib/bridgedb/templates/base.html:48
+msgid "My bridges don't work! I need help!"
+msgstr ""
+
+#: lib/bridgedb/templates/base.html:49
+#, python-format
+msgid ""
+"If your Tor doesn't work, you should email %s. Try including as much info "
+"about your case as you can, including the list of bridges you used, the "
+"bundle filename/version you used, the messages that Tor gave out, etc."
+msgstr ""
+
+#: lib/bridgedb/templates/bridges.html:10
+msgid ""
+"To use the above lines, go to Vidalia's Network settings page, and click "
+"\"My ISP blocks connections to the Tor network\". Then add each bridge "
+"address one at a time."
+msgstr ""
+
+#: lib/bridgedb/templates/bridges.html:13
+msgid "No bridges currently available"
+msgstr ""
+
+#: lib/bridgedb/templates/captcha.html:6
+msgid "Upgrade your browser to Firefox"
+msgstr ""
+
+#: lib/bridgedb/templates/captcha.html:8
+msgid "Type the two words"
+msgstr ""
+
+#: lib/bridgedb/templates/index.html:6
+msgid "Step 1"
+msgstr "ნაბიჯი 1"
+
+#: lib/bridgedb/templates/index.html:8
+#, python-format
+msgid "Get %s Tor Browser Bundle %s"
+msgstr "მიიღეთ %s Tor ბრაუზერის ნუსხა 
%s"
+
+#: lib/bridgedb/templates/index.html:13
+msgid "Step 2"
+msgstr "ნაბიჯი 2"
+
+#: lib/bridgedb/templates/index.html:15
+#, python-format
+msgid "Get %s bridges %s"
+msgstr ""
+
+#: lib/bridgedb/templates/index.html:19
+msgid "Step 3"
+msgstr "ნაბიჯი 3"
+
+#: lib/bridgedb/templates/index.html:21
+#, python-format
+msgid "Now %s add the bridges to Tor %s"
+msgstr ""

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/gettor] Update translations for gettor

2013-06-19 Thread translation
commit 209432de357c977876a7ac0b00d0e409ac2743c6
Author: Translation commit bot 
Date:   Wed Jun 19 15:15:10 2013 +

Update translations for gettor
---
 ka/gettor.po |  503 ++
 1 file changed, 503 insertions(+)

diff --git a/ka/gettor.po b/ka/gettor.po
new file mode 100644
index 000..4bb2c0b
--- /dev/null
+++ b/ka/gettor.po
@@ -0,0 +1,503 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Jacob Appelbaum , 2009
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
+"POT-Creation-Date: 2013-01-19 13:40+0100\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/gettor/i18n.py:27
+msgid "Hello, This is the \"GetTor\" robot."
+msgstr ""
+
+#: lib/gettor/i18n.py:29
+msgid "Thank you for your request."
+msgstr ""
+
+#: lib/gettor/i18n.py:31
+msgid ""
+"Unfortunately, we won't answer you at this address. You should make\n"
+"an account with GMAIL.COM, YAHOO.COM or YAHOO.CN and send the mail from\n"
+"one of those."
+msgstr ""
+
+#: lib/gettor/i18n.py:35
+msgid ""
+"We only process requests from email services that support \"DKIM\",\n"
+"which is an email feature that lets us verify that the address in the\n"
+"\"From\" line is actually the one who sent the mail."
+msgstr ""
+
+#: lib/gettor/i18n.py:39
+msgid ""
+"(We apologize if you didn't ask for this mail. Since your email is from\n"
+"a service that doesn't use DKIM, we're sending a short explanation,\n"
+"and then we'll ignore this email address for the next day or so.)"
+msgstr ""
+
+#: lib/gettor/i18n.py:43 lib/gettor/i18n.py:135
+msgid ""
+"If you have any questions or it doesn't work, you can contact a\n"
+"human at this support email address: h...@rt.torproject.org"
+msgstr ""
+
+#: lib/gettor/i18n.py:46
+msgid ""
+"I will mail you a Tor package, if you tell me which one you want.\n"
+"Please select one of the following package names:\n"
+"\n"
+"windows\n"
+"macos-i386\n"
+"macos-ppc\n"
+"linux-i386\n"
+"linux-x86_64\n"
+"obfs-windows\n"
+"obfs-macos-i386\n"
+"obfs-macos-x86_64\n"
+"obfs-linux-i386\n"
+"obfs-linux-x86_64\n"
+"source"
+msgstr ""
+
+#: lib/gettor/i18n.py:61
+msgid ""
+"Please reply to this mail, and tell me a single package name anywhere \n"
+"in the body of your email."
+msgstr ""
+
+#: lib/gettor/i18n.py:64
+msgid ""
+"OBTAINING LOCALIZED VERSIONS OF TOR\n"
+"==="
+msgstr ""
+
+#: lib/gettor/i18n.py:67
+msgid ""
+"To get a version of Tor translated into your language, specify the\n"
+"language you want in the address you send the mail to:\n"
+"\n"
+"gettor...@torproject.org"
+msgstr ""
+
+#: lib/gettor/i18n.py:72
+msgid ""
+"This example will give you the requested package in a localized\n"
+"version for Farsi (Persian). Check below for a list of supported language\n"
+"codes. "
+msgstr ""
+
+#: lib/gettor/i18n.py:76
+msgid " List of supported locales:"
+msgstr ""
+
+#: lib/gettor/i18n.py:78
+msgid "Here is a list of all available languages:"
+msgstr ""
+
+#: lib/gettor/i18n.py:80
+msgid ""
+"gettor...@torproject.org: Arabic\n"
+"gettor...@torproject.org: German\n"
+"gettor...@torproject.org: English\n"
+"gettor...@torproject.org: Spanish\n"
+"gettor...@torproject.org: Farsi (Iran)\n"
+"gettor...@torproject.org: French\n"
+"gettor...@torproject.org: Italian\n"
+"gettor...@torproject.org: Dutch\n"
+"gettor...@torproject.org: Polish\n"
+"gettor...@torproject.org: Russian\n"
+"gettor...@torproject.org: Chinese"
+msgstr ""
+
+#: lib/gettor/i18n.py:92
+msgid "If you select no language, you will receive the English version."
+msgstr ""
+
+#: lib/gettor/i18n.py:94
+msgid ""
+"SMALLER SIZED PACKAGES\n"
+"=="
+msgstr ""
+
+#: lib/gettor/i18n.py:97
+msgid ""
+"If your bandwith is low or your provider doesn't allow you to\n"
+"receive large attachments in your email, GetTor can send you several\n"
+"small packages instead of one big one."
+msgstr ""
+
+#: lib/gettor/i18n.py:101
+msgid ""
+"Simply include the keyword 'split' in a new line on its own (this part\n"
+"is important!) like so: \n"
+"\n"
+"windows\n"
+"split"
+msgstr ""
+
+#: lib/gettor/i18n.py:107
+msgid ""
+"Sending this text in an email to GetTor will cause it to send you \n"
+"the Tor Browser Bundle in a number of 1,4MB attachments."
+msgstr ""
+
+#: lib/gettor/i18n.py:110
+msgid ""
+"After having received all parts, you need to

[tor-commits] [translation/vidalia] Update translations for vidalia

2013-06-19 Thread translation
commit 1caaba71902a5a4f68f925ee79015674d49488f2
Author: Translation commit bot 
Date:   Wed Jun 19 15:15:25 2013 +

Update translations for vidalia
---
 ka/qt_ka.po  |   13 +++
 ka/vidalia_ka.po |  111 ++
 2 files changed, 76 insertions(+), 48 deletions(-)

diff --git a/ka/qt_ka.po b/ka/qt_ka.po
index 6fb4a0e..59b5ed4 100644
--- a/ka/qt_ka.po
+++ b/ka/qt_ka.po
@@ -1,18 +1,19 @@
-# 
+# Translators:
+# Translators:
 # Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
 "POT-Creation-Date: 2008-08-20 03:25+\n"
-"PO-Revision-Date: 2010-12-05 19:59+\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2013-06-19 14:50+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Vidalia ts2po 0.2\n"
 
 #: qaccessibleobject.cpp:348
@@ -431,5 +432,3 @@ msgstr ""
 msgctxt "QFileSystemModel"
 msgid "%1 bytes"
 msgstr ""
-
-
diff --git a/ka/vidalia_ka.po b/ka/vidalia_ka.po
index ba7877f..ee65acf 100755
--- a/ka/vidalia_ka.po
+++ b/ka/vidalia_ka.po
@@ -1,18 +1,18 @@
-# 
+# Translators:
 # Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n";
-"POT-Creation-Date: 2011-09-07 14:40+\n"
-"PO-Revision-Date: 2010-12-05 20:03+\n"
-"Last-Translator: \n"
-"Language-Team: translati...@vidalia-project.net\n"
+"POT-Creation-Date: 2012-03-21 17:52+\n"
+"PO-Revision-Date: 2013-06-19 15:10+\n"
+"Last-Translator: runasand \n"
+"Language-Team: Georgian 
(http://www.transifex.com/projects/p/torproject/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ka\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Vidalia ts2po 0.2\n"
 
 msgctxt "AboutDialog"
@@ -198,6 +198,13 @@ msgstr ""
 
 msgctxt "AdvancedPage"
 msgid ""
+"You've checked the autoconfiguration option for the ControlPort, but "
+"provided no Data Directory. Please add one, or uncheck the \"Configure "
+"ControlPort automatically\" option."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
 "Vidalia was unable to remove the Tor service.\n"
 "\n"
 "You may need to remove it manually."
@@ -223,6 +230,23 @@ msgctxt "AppearancePage"
 msgid "Vidalia was unable to load the selected language translation."
 msgstr ""
 
+msgctxt "AppearancePage"
+msgid ""
+"System Icon Preferences (changes will take effect when you restart Vidalia)"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Show the Tray Icon and Dock Icon (default)"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Hide the Tray Icon"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Hide the Dock Icon"
+msgstr ""
+
 msgctxt "BandwidthGraph"
 msgid "Since:"
 msgstr ""
@@ -1408,7 +1432,7 @@ msgstr ""
 
 msgctxt "HelpBrowser"
 msgid "Vidalia Help"
-msgstr ""
+msgstr "Vidalia-ს დახმარება"
 
 msgctxt "HelpBrowser"
 msgid "Back"
@@ -1681,7 +1705,7 @@ msgstr ""
 
 msgctxt "MainWindow"
 msgid "Vidalia Help"
-msgstr ""
+msgstr "Vidalia-ს დახმარება"
 
 msgctxt "MainWindow"
 msgid "Error starting web browser"
@@ -1748,10 +1772,6 @@ msgid "Connected to the Tor network!"
 msgstr ""
 
 msgctxt "MainWindow"
-msgid "Unrecognized startup status"
-msgstr ""
-
-msgctxt "MainWindow"
 msgid "miscellaneous"
 msgstr ""
 
@@ -2063,45 +2083,60 @@ msgid ""
 msgstr ""
 
 msgctxt "MainWindow"
-msgid "failed (%1)"
+msgid "Bootstrapping torrc from %1 to %2"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "(probably Telnet)"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "(probably an email client)"
 msgstr ""
 
 msgctxt "MainWindow"
 msgid ""
-"Your relay is shutting down.\n"
-"Click 'Stop' again to stop your relay now."
+"One of your applications %1 appears to be making a potentially unencrypted "
+"and unsafe connection to port %2."
 msgstr ""
 
 msgctxt "MainWindow"
-msgid "Bootstrapping torrc from %1 to %2"
+msgid "failed (%1)"
 msgstr ""
 
 msgctxt "MainWindow"
 msgid ""
-"You are currently running a relay. Terminating your relay will interrupt any 
open connections from clients.\n"
-"\n"
-"Would you like to shutdown gracefully and give clients time to find a new 
relay?"
+"Your relay is shutting down.\n"
+"Click 'Stop' again to stop your relay now."
 msgstr ""
 
 msgctxt "MainWindow"
 msgid ""
-"Vidalia detected that the Tor software exited unexpectedly.\n"
+"Vidalia can't find out how to talk to Tor because it can't access this file: 
%1\n"
 "\n"
-"Please check the message log for recent warning or error messa

[tor-commits] [onionoo/master] Extract GeoIP lookup code and test it.

2013-06-19 Thread karsten
commit 9748712da484111087b7268e2246829178f2a612
Author: Karsten Loesing 
Date:   Wed Jun 19 13:39:22 2013 +0200

Extract GeoIP lookup code and test it.
---
 src/org/torproject/onionoo/CurrentNodes.java   |  360 +-
 src/org/torproject/onionoo/LookupService.java  |  396 
 src/org/torproject/onionoo/Main.java   |6 +-
 test/org/torproject/onionoo/LookupServiceTest.java |  501 
 4 files changed, 923 insertions(+), 340 deletions(-)

diff --git a/src/org/torproject/onionoo/CurrentNodes.java 
b/src/org/torproject/onionoo/CurrentNodes.java
index 64db6a1..9e27f5b 100644
--- a/src/org/torproject/onionoo/CurrentNodes.java
+++ b/src/org/torproject/onionoo/CurrentNodes.java
@@ -2,16 +2,11 @@
  * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Scanner;
@@ -21,12 +16,12 @@ import java.util.SortedSet;
 import java.util.TimeZone;
 import java.util.TreeMap;
 import java.util.TreeSet;
-import java.util.regex.Pattern;
 
 import org.torproject.descriptor.BridgeNetworkStatus;
 import org.torproject.descriptor.Descriptor;
 import org.torproject.descriptor.NetworkStatusEntry;
 import org.torproject.descriptor.RelayNetworkStatusConsensus;
+import org.torproject.onionoo.LookupService.LookupResult;
 
 /* Store relays and bridges that have been running in the past seven
  * days. */
@@ -34,17 +29,20 @@ public class CurrentNodes {
 
   private DescriptorSource descriptorSource;
 
+  private LookupService lookupService;
+
   private DocumentStore documentStore;
 
   /* Initialize an instance for the back-end that is read-only and doesn't
* support parsing new descriptor contents. */
   public CurrentNodes(DocumentStore documentStore) {
-this(null, documentStore);
+this(null, null, documentStore);
   }
 
   public CurrentNodes(DescriptorSource descriptorSource,
-  DocumentStore documentStore) {
+  LookupService lookupService, DocumentStore documentStore) {
 this.descriptorSource = descriptorSource;
+this.lookupService = lookupService;
 this.documentStore = documentStore;
   }
 
@@ -411,345 +409,29 @@ public class CurrentNodes {
   }
 
   public void lookUpCitiesAndASes() {
-
-/* Make sure we have all required .csv files. */
-// TODO Make paths configurable or allow passing file contents as
-// strings in order to facilitate testing.
-// TODO Move look-up code to new LookupService class that is
-// initialized with geoip files, receives a sorted set of addresses,
-// performs lookups, and returns results to CurrentNodes.
-File[] geoLiteCityBlocksCsvFiles = new File[] {
-new File("geoip/Manual-GeoLiteCity-Blocks.csv"),
-new File("geoip/Automatic-GeoLiteCity-Blocks.csv"),
-new File("geoip/GeoLiteCity-Blocks.csv")
-};
-File geoLiteCityBlocksCsvFile = null;
-for (File file : geoLiteCityBlocksCsvFiles) {
-  if (file.exists()) {
-geoLiteCityBlocksCsvFile = file;
-break;
-  }
-}
-if (geoLiteCityBlocksCsvFile == null) {
-  System.err.println("No *GeoLiteCity-Blocks.csv file in geoip/.");
-  return;
-}
-File geoLiteCityLocationCsvFile =
-new File("geoip/GeoLiteCity-Location.csv");
-if (!geoLiteCityLocationCsvFile.exists()) {
-  System.err.println("No GeoLiteCity-Location.csv file in geoip/.");
-  return;
-}
-File iso3166CsvFile = new File("geoip/iso3166.csv");
-if (!iso3166CsvFile.exists()) {
-  System.err.println("No iso3166.csv file in geoip/.");
-  return;
-}
-File regionCsvFile = new File("geoip/region.csv");
-if (!regionCsvFile.exists()) {
-  System.err.println("No region.csv file in geoip/.");
-  return;
-}
-File geoIPASNum2CsvFile = new File("geoip/GeoIPASNum2.csv");
-if (!geoIPASNum2CsvFile.exists()) {
-  System.err.println("No GeoIPASNum2.csv file in geoip/.");
-  return;
-}
-
-/* Obtain a map from relay IP address strings to numbers. */
-Map addressStringNumbers = new HashMap();
-Pattern ipv4Pattern = Pattern.compile("^[0-9\\.]{7,15}$");
+SortedSet addressStrings = new TreeSet();
 for (Node relay : this.knownRelays.values()) {
-  String addressString = relay.getAddress();
-  long addressNumber = -1L;
-  if (ipv4Pattern.matcher(addressString).matches()) {
-String[] parts = addressString.split("\\.", 4);
-if (parts.length == 4) {
-  addressNumber = 0L;
-  for (int i = 0; i < 4; i++) {
-addressNumber *= 256L;
-int octetValue = -1;
-try {
-  octetVal

[tor-commits] [ooni-probe/master] Update changelog

2013-06-19 Thread art
commit 514b707df4c701a1e4c58f726c0261e26fabdb32
Author: Arturo Filastò 
Date:   Wed Jun 19 14:44:35 2013 +0200

Update changelog
---
 ChangeLog.md |   30 ++
 1 file changed, 30 insertions(+)

diff --git a/ChangeLog.md b/ChangeLog.md
index 7d22967..93379ce 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,33 @@
+## v0.1.0
+
+Improvements to HTML/JS based user interface:
+
+  * XSRF protection
+
+  * user supplied input specification
+
+Bugfixing and improvements to scheduler.
+
+## v0.0.12
+
+Implement JS/HTML based user interface.
+
+Supports:
+
+  * Starting and stopping of tests
+
+  * Monitoring of test progress
+
+## v0.0.11
+
+* Parametrize task timeout and retry count
+
+* Set the default collector via the command line option
+
+* Add option to disable the default collector
+
+* Add continuous integration with travis
+
 ## v0.0.10
 
 ### ooniprobe

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Place the right paths in the ooniprobe sample config

2013-06-19 Thread art
commit aafc5b726d33b5af9caba8e3693548f5c5284e43
Author: Arturo Filastò 
Date:   Mon Jun 17 13:28:15 2013 +0200

Place the right paths in the ooniprobe sample config
---
 setup.py |9 +
 1 file changed, 9 insertions(+)

diff --git a/setup.py b/setup.py
index ec4b353..5f221d0 100644
--- a/setup.py
+++ b/setup.py
@@ -22,6 +22,15 @@ usr_share_path = '/usr/share/ooni'
 # If this is true then it means we are in a virtualenv
 if hasattr(sys, 'real_prefix'):
 usr_share_path = pj(sys.prefix, 'share', 'ooni')
+with open(pj('data', 'ooniprobe.conf.sample.new'), 'w+') as w:
+with open(pj('data', 'ooniprobe.conf.sample')) as f:
+for line in f:
+if line.startswith('data_dir: /usr/share/ooni'):
+w.write('data_dir: %s\n' % usr_share_path)
+else:
+w.write(line)
+os.rename(pj('data', 'ooniprobe.conf.sample.new'),
+  pj('data', 'ooniprobe.conf.sample'))
 
 data_files = []
 for root, dirs, file_names in os.walk('data/'):



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Add oonid port

2013-06-19 Thread art
commit 5d45d7f20e964dc340c3d61068aa6aa72aef3b1c
Author: Arturo Filastò 
Date:   Mon Jun 17 14:15:55 2013 +0200

Add oonid port
---
 data/ooniprobe.conf.sample |1 +
 1 file changed, 1 insertion(+)

diff --git a/data/ooniprobe.conf.sample b/data/ooniprobe.conf.sample
index 6eb7a5b..f0c2fef 100644
--- a/data/ooniprobe.conf.sample
+++ b/data/ooniprobe.conf.sample
@@ -46,6 +46,7 @@ advanced:
 reporting_concurrency: 20
 # Specify here a custom data_dir path
 data_dir: /usr/share/ooni/
+oonid_api_port: 8042
 tor:
 socks_port: 9050
 #control_port: 9051



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge pull request #75 from hellais/feature/ui

2013-06-19 Thread art
commit d32048774026c5f0a7a437bd7b8f412cd8cb8dd6
Merge: e2e8559 5d45d7f
Author: aagbsn 
Date:   Mon Jun 17 05:22:47 2013 -0700

Merge pull request #75 from hellais/feature/ui

Tested on debian. Adds bin/oonid which provides a web UI on port 8042 
(default).

 .travis.yml|1 -
 Vagrantfile|   16 +-
 bin/oonid  |7 +
 data/nettests/blocking/__init__.py |1 +
 data/nettests/blocking/dnsconsistency.py   |  173 +
 data/nettests/blocking/http_requests.py|  130 +
 data/nettests/blocking/tcpconnect.py   |   69 +
 data/nettests/examples/example_dns_http.py |   11 +
 data/nettests/examples/example_dnst.py |   13 +
 data/nettests/examples/example_http_checksum.py|   27 +
 data/nettests/examples/example_httpt.py|   36 +
 data/nettests/examples/example_myip.py |   21 +
 data/nettests/examples/example_scapyt.py   |   29 +
 data/nettests/examples/example_scapyt_yield.py |   25 +
 data/nettests/examples/example_simple.py   |8 +
 data/nettests/examples/example_tcpt.py |   21 +
 .../experimental/bridge_reachability/bridget.py|  462 +
 .../experimental/bridge_reachability/echo.py   |  132 +
 data/nettests/experimental/chinatrigger.py |  108 +
 data/nettests/experimental/dns_injection.py|   63 +
 data/nettests/experimental/domclass_collector.py   |   33 +
 .../experimental/http_filtering_bypassing.py   |   84 +
 .../experimental/http_keyword_filtering.py |   45 +
 data/nettests/experimental/http_trix.py|   47 +
 .../experimental/http_uk_mobile_networks.py|   85 +
 data/nettests/experimental/keyword_filtering.py|   52 +
 data/nettests/experimental/parasitictraceroute.py  |  129 +
 data/nettests/experimental/squid.py|  117 +
 data/nettests/manipulation/captiveportal.py|  650 +
 data/nettests/manipulation/daphne.py   |  119 +
 data/nettests/manipulation/dnsspoof.py |   69 +
 .../manipulation/http_header_field_manipulation.py |  189 +
 data/nettests/manipulation/http_host.py|  151 +
 .../manipulation/http_invalid_request_line.py  |  106 +
 data/nettests/manipulation/traceroute.py   |  143 +
 data/nettests/scanning/http_url_list.py|   98 +
 data/nettests/third_party/Makefile |3 +
 data/nettests/third_party/README   |   14 +
 data/nettests/third_party/netalyzr.py  |   58 +
 data/ooniprobe.conf.sample |   58 +
 data/ui/.bowerrc   |5 +
 data/ui/app/index.html |   39 +
 data/ui/app/libs/angular-resource/README.md|4 +
 .../app/libs/angular-resource/angular-resource.js  |  445 +
 data/ui/app/libs/angular-resource/component.json   |   17 +
 data/ui/app/libs/angular/angular.js|14733 
 data/ui/app/libs/angular/component.json|   14 +
 data/ui/app/libs/bootstrap/component.json  |9 +
 .../libs/bootstrap/css/bootstrap-responsive.css| 1109 ++
 data/ui/app/libs/bootstrap/css/bootstrap.css   | 6158 
 .../bootstrap/img/glyphicons-halflings-white.png   |  Bin 0 -> 8777 bytes
 .../libs/bootstrap/img/glyphicons-halflings.png|  Bin 0 -> 12799 bytes
 data/ui/app/libs/bootstrap/js/bootstrap.js | 2276 +++
 data/ui/app/libs/jquery/component.json |   14 +
 data/ui/app/libs/jquery/composer.json  |   23 +
 data/ui/app/libs/jquery/jquery.js  | 9472 +
 data/ui/app/libs/ng-upload/ng-upload.js|  107 +
 data/ui/app/scripts/app.js |   30 +
 data/ui/app/scripts/controllers.js |   96 +
 data/ui/app/scripts/directives.js  |5 +
 data/ui/app/scripts/filters.js |5 +
 data/ui/app/scripts/services.js|   27 +
 data/ui/app/styles/app.css |   21 +
 data/ui/app/views/inputs.html  |   31 +
 data/ui/app/views/sidebar.html |   10 +
 data/ui/app/views/test.html|   48 +
 data/ui/component.json |9 +
 decks/before_i_commit.testdeck |   12 +-
 decks/short_no_root.deck   |   10 +-
 nettests/blocking/__init__.py  |1 -
 nettests/blocking/dnsconsistency.py|  173 -
 nettests/blocking/http_requests.py |  130 -
 nettests/blocking/tcpconnect.py|   69 -
 nettests/examples/example_dns_http.py  |   11 -
 nettests/examples/example_dnst.py  |   13 -
 nettests/examples/example_http_checksum.py |   27 -
 nettests/examples/e

[tor-commits] [ooni-probe/master] Add example on data_dir

2013-06-19 Thread art
commit 89fb6ce4ffaa95f4d7a3d1a010ef9827c6c04393
Author: Arturo Filastò 
Date:   Thu Jun 13 15:15:50 2013 +0200

Add example on data_dir
---
 data/ooniprobe.conf.sample |2 ++
 1 file changed, 2 insertions(+)

diff --git a/data/ooniprobe.conf.sample b/data/ooniprobe.conf.sample
index ca94c86..6eb7a5b 100644
--- a/data/ooniprobe.conf.sample
+++ b/data/ooniprobe.conf.sample
@@ -44,6 +44,8 @@ advanced:
 reporting_retries: 3
 # How many reports to perform concurrently
 reporting_concurrency: 20
+# Specify here a custom data_dir path
+data_dir: /usr/share/ooni/
 tor:
 socks_port: 9050
 #control_port: 9051



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'feature/ui' into staging

2013-06-19 Thread art
commit 2bb5d8719b7c3c6fc8b7242354f4fe4da8367e6a
Merge: 317d4a7 da535b9
Author: Arturo Filastò 
Date:   Mon Jun 17 13:04:00 2013 +0200

Merge branch 'feature/ui' into staging

* feature/ui: (39 commits)
  Fix bug that resulted in inconsistencies in test_id
  Add example on data_dir
  Actually we are already root, no need for sudo
  Run setup.py script as root Install the stable pip, before upgrading
  Fix bug in importing of geodata
  Place data files into proper sub-directory structure
  Fix import lost in merge
  Fix bug in HTTP api
  Add oonid script to run ooni daemon
  Include jquery as dep
  Bump to version 0.1.0
  Add cyclone as a dependency
  Implement XSRF protection in the HTTP API
  Point to data directory in short-not-root deck
  Implement in-browser input file selection views
  Improve setup.py, fixup paths for reporting.
  Remove oonib related data from ooniprobe
  Add support for viewing test results and uploading inputs
  Initial commit of ooni-probe user interface
  Implement starting and stopping of tests via the HTTP API
  ...

Conflicts:
data/ooniprobe.conf.sample

 Vagrantfile|   16 +-
 bin/oonid  |7 +
 data/nettests/blocking/__init__.py |1 +
 data/nettests/blocking/dnsconsistency.py   |  173 +
 data/nettests/blocking/http_requests.py|  130 +
 data/nettests/blocking/tcpconnect.py   |   69 +
 data/nettests/examples/example_dns_http.py |   11 +
 data/nettests/examples/example_dnst.py |   13 +
 data/nettests/examples/example_http_checksum.py|   27 +
 data/nettests/examples/example_httpt.py|   36 +
 data/nettests/examples/example_myip.py |   21 +
 data/nettests/examples/example_scapyt.py   |   29 +
 data/nettests/examples/example_scapyt_yield.py |   25 +
 data/nettests/examples/example_simple.py   |8 +
 data/nettests/examples/example_tcpt.py |   21 +
 .../experimental/bridge_reachability/bridget.py|  462 +
 .../experimental/bridge_reachability/echo.py   |  132 +
 data/nettests/experimental/chinatrigger.py |  108 +
 data/nettests/experimental/dns_injection.py|   63 +
 data/nettests/experimental/domclass_collector.py   |   33 +
 .../experimental/http_filtering_bypassing.py   |   84 +
 .../experimental/http_keyword_filtering.py |   45 +
 data/nettests/experimental/http_trix.py|   47 +
 .../experimental/http_uk_mobile_networks.py|   85 +
 data/nettests/experimental/keyword_filtering.py|   52 +
 data/nettests/experimental/parasitictraceroute.py  |  129 +
 data/nettests/experimental/squid.py|  117 +
 data/nettests/manipulation/captiveportal.py|  650 +
 data/nettests/manipulation/daphne.py   |  119 +
 data/nettests/manipulation/dnsspoof.py |   69 +
 .../manipulation/http_header_field_manipulation.py |  189 +
 data/nettests/manipulation/http_host.py|  151 +
 .../manipulation/http_invalid_request_line.py  |  106 +
 data/nettests/manipulation/traceroute.py   |  143 +
 data/nettests/scanning/http_url_list.py|   98 +
 data/nettests/third_party/Makefile |3 +
 data/nettests/third_party/README   |   14 +
 data/nettests/third_party/netalyzr.py  |   58 +
 data/ooniprobe.conf.sample |   57 +
 data/ui/.bowerrc   |5 +
 data/ui/app/index.html |   39 +
 data/ui/app/libs/angular-resource/README.md|4 +
 .../app/libs/angular-resource/angular-resource.js  |  445 +
 data/ui/app/libs/angular-resource/component.json   |   17 +
 data/ui/app/libs/angular/angular.js|14733 
 data/ui/app/libs/angular/component.json|   14 +
 data/ui/app/libs/bootstrap/component.json  |9 +
 .../libs/bootstrap/css/bootstrap-responsive.css| 1109 ++
 data/ui/app/libs/bootstrap/css/bootstrap.css   | 6158 
 .../bootstrap/img/glyphicons-halflings-white.png   |  Bin 0 -> 8777 bytes
 .../libs/bootstrap/img/glyphicons-halflings.png|  Bin 0 -> 12799 bytes
 data/ui/app/libs/bootstrap/js/bootstrap.js | 2276 +++
 data/ui/app/libs/jquery/component.json |   14 +
 data/ui/app/libs/jquery/composer.json  |   23 +
 data/ui/app/libs/jquery/jquery.js  | 9472 +
 data/ui/app/libs/ng-upload/ng-upload.js|  107 +
 data/ui/app/scripts/app.js |   30 +
 data/ui/app/scripts/controllers.js |   96 +
 data/ui/app/scripts/directives.js  |5 +
 data/ui/app/scripts/filters.js |5 +
 data/ui/app/scripts/services.js| 

[tor-commits] [ooni-probe/master] Update install

2013-06-19 Thread art
commit e2e8559582a2bae2a47f4ecf659be51b131804df
Author: Arturo Filastò 
Date:   Sat Jun 15 16:09:17 2013 +0200

Update install
---
 README.md |   16 
 1 file changed, 16 insertions(+)

diff --git a/README.md b/README.md
index fe89f43..6da4680 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,22 @@ network data that will assist you with your endeavors!
 
 0) [Install Vagrant](http://downloads.vagrantup.com/)
 
+0.1)
+
+On OSX:
+
+If youd don't have it install homebrew http://mxcl.github.io/homebrew/
+
+```
+brew install git
+```
+
+On debian/ubuntu:
+
+```
+sudo apt-get install git
+```
+
 1) Open a Terminal and run:
 
 ```



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Remove superfluous line in travis

2013-06-19 Thread art
commit c3bd09729e61f1ac1477c3199b97a1728d8644cb
Author: Arturo Filastò 
Date:   Mon Jun 17 13:30:53 2013 +0200

Remove superfluous line in travis
---
 .travis.yml |1 -
 1 file changed, 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 8a3f99c..fed5d7c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,5 +13,4 @@ install:
 # command to run tests, e.g. python setup.py test
 script:
   # To be activated after merge of PR#64
-  - cp ooniprobe.conf.sample ooniprobe.conf
   - trial ooni



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix installation for virtualenv

2013-06-19 Thread art
commit 3e3843515d3ca6179b10f1652e930f54151655e5
Author: Arturo Filastò 
Date:   Mon Jun 17 13:13:27 2013 +0200

Fix installation for virtualenv
---
 setup.py |7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index 7912924..ec4b353 100644
--- a/setup.py
+++ b/setup.py
@@ -18,13 +18,18 @@ dependency_links = [
 'https://people.torproject.org/~ioerror/src/mirrors/ooniprobe'
 ]
 
+usr_share_path = '/usr/share/ooni'
+# If this is true then it means we are in a virtualenv
+if hasattr(sys, 'real_prefix'):
+usr_share_path = pj(sys.prefix, 'share', 'ooni')
+
 data_files = []
 for root, dirs, file_names in os.walk('data/'):
 files = []
 for file_name in file_names:
 if not file_name.endswith('.pyc'):
 files.append(pj(root, file_name))
-data_files.append([pj('/usr/share/ooni', root), files])
+data_files.append([pj(usr_share_path, root), files])
 
 with open('requirements.txt') as f:
 for line in f:



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'master' of github.com:TheTorProject/ooni-probe

2013-06-19 Thread art
commit 317d4a700bc058c0117fd58abce78e1ac7d0086d
Merge: 5338414 e2e8559
Author: Arturo Filastò 
Date:   Mon Jun 17 13:03:27 2013 +0200

Merge branch 'master' of github.com:TheTorProject/ooni-probe

* 'master' of github.com:TheTorProject/ooni-probe:
  Update install

 README.md |   16 
 1 file changed, 16 insertions(+)



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix bug that resulted in inconsistencies in test_id

2013-06-19 Thread art
commit eae2c1ec99fb231d169cda14375c4953be50ac44
Author: Arturo Filastò 
Date:   Fri Jun 14 19:44:07 2013 +0200

Fix bug that resulted in inconsistencies in test_id
---
 ooni/nettest.py |7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index 80c1965..10eacd3 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -141,6 +141,9 @@ def getArguments(test_class):
 
 return arguments
 
+def test_class_name_to_name(test_class_name):
+return test_class_name.lower().replace(' ','_')
+
 def getNetTestInformation(net_test_file):
 """
 Returns a dict containing:
@@ -156,7 +159,7 @@ def getNetTestInformation(net_test_file):
 """
 test_class = getTestClassFromFile(net_test_file)
 
-test_id = os.path.basename(net_test_file).replace('.py', '')
+test_id = test_class_name_to_name(test_class.name)
 information = {'id': test_id,
 'name': test_class.name,
 'description': test_class.description,
@@ -333,7 +336,7 @@ class NetTestLoader(object):
 """
 test_class, _ = test_cases[0]
 self.testVersion = test_class.version
-self.testName = test_class.name.lower().replace(' ','_')
+self.testName = test_class_name_to_name(test_class.name)
 self.testCases = test_cases
 
 def checkOptions(self):



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge pull request #119 from isislovecruft/fix/8353-openssl-sslv2-context

2013-06-19 Thread art
commit 320bef770be6a07911ee8e292a8214bcfa1bced7
Merge: d320487 abcb946
Author: aagbsn 
Date:   Mon Jun 17 05:41:19 2013 -0700

Merge pull request #119 from isislovecruft/fix/8353-openssl-sslv2-context

Fix #8353, catch error when OpenSSL not compiled with SSLv2 context.

 nettests/experimental/tls_handshake.py |   27 +--
 1 file changed, 21 insertions(+), 6 deletions(-)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'feature/ui' into staging

2013-06-19 Thread art
commit da535b9bfbc7b89e5b196d8a88a374206684715f
Merge: af03b56 eae2c1e
Author: Arturo Filastò 
Date:   Mon Jun 17 12:34:42 2013 +0200

Merge branch 'feature/ui' into staging

* feature/ui: (39 commits)
  Fix bug that resulted in inconsistencies in test_id
  Add example on data_dir
  Actually we are already root, no need for sudo
  Run setup.py script as root Install the stable pip, before upgrading
  Fix bug in importing of geodata
  Place data files into proper sub-directory structure
  Fix import lost in merge
  Fix bug in HTTP api
  Add oonid script to run ooni daemon
  Include jquery as dep
  Bump to version 0.1.0
  Add cyclone as a dependency
  Implement XSRF protection in the HTTP API
  Point to data directory in short-not-root deck
  Implement in-browser input file selection views
  Improve setup.py, fixup paths for reporting.
  Remove oonib related data from ooniprobe
  Add support for viewing test results and uploading inputs
  Initial commit of ooni-probe user interface
  Implement starting and stopping of tests via the HTTP API
  ...

Conflicts:
ooni/__init__.py
ooni/tasks.py
setup.py

 Vagrantfile|   16 +-
 bin/oonid  |7 +
 data/nettests/blocking/__init__.py |1 +
 data/nettests/blocking/dnsconsistency.py   |  173 +
 data/nettests/blocking/http_requests.py|  130 +
 data/nettests/blocking/tcpconnect.py   |   69 +
 data/nettests/examples/example_dns_http.py |   11 +
 data/nettests/examples/example_dnst.py |   13 +
 data/nettests/examples/example_http_checksum.py|   27 +
 data/nettests/examples/example_httpt.py|   36 +
 data/nettests/examples/example_myip.py |   21 +
 data/nettests/examples/example_scapyt.py   |   29 +
 data/nettests/examples/example_scapyt_yield.py |   25 +
 data/nettests/examples/example_simple.py   |8 +
 data/nettests/examples/example_tcpt.py |   21 +
 .../experimental/bridge_reachability/bridget.py|  462 +
 .../experimental/bridge_reachability/echo.py   |  132 +
 data/nettests/experimental/chinatrigger.py |  108 +
 data/nettests/experimental/dns_injection.py|   63 +
 data/nettests/experimental/domclass_collector.py   |   33 +
 .../experimental/http_filtering_bypassing.py   |   84 +
 .../experimental/http_keyword_filtering.py |   45 +
 data/nettests/experimental/http_trix.py|   47 +
 .../experimental/http_uk_mobile_networks.py|   85 +
 data/nettests/experimental/keyword_filtering.py|   52 +
 data/nettests/experimental/parasitictraceroute.py  |  129 +
 data/nettests/experimental/squid.py|  117 +
 data/nettests/manipulation/captiveportal.py|  650 +
 data/nettests/manipulation/daphne.py   |  119 +
 data/nettests/manipulation/dnsspoof.py |   69 +
 .../manipulation/http_header_field_manipulation.py |  189 +
 data/nettests/manipulation/http_host.py|  151 +
 .../manipulation/http_invalid_request_line.py  |  106 +
 data/nettests/manipulation/traceroute.py   |  143 +
 data/nettests/scanning/http_url_list.py|   98 +
 data/nettests/third_party/Makefile |3 +
 data/nettests/third_party/README   |   14 +
 data/nettests/third_party/netalyzr.py  |   58 +
 data/ooniprobe.conf.sample |   57 +
 data/ui/.bowerrc   |5 +
 data/ui/app/index.html |   39 +
 data/ui/app/libs/angular-resource/README.md|4 +
 .../app/libs/angular-resource/angular-resource.js  |  445 +
 data/ui/app/libs/angular-resource/component.json   |   17 +
 data/ui/app/libs/angular/angular.js|14733 
 data/ui/app/libs/angular/component.json|   14 +
 data/ui/app/libs/bootstrap/component.json  |9 +
 .../libs/bootstrap/css/bootstrap-responsive.css| 1109 ++
 data/ui/app/libs/bootstrap/css/bootstrap.css   | 6158 
 .../bootstrap/img/glyphicons-halflings-white.png   |  Bin 0 -> 8777 bytes
 .../libs/bootstrap/img/glyphicons-halflings.png|  Bin 0 -> 12799 bytes
 data/ui/app/libs/bootstrap/js/bootstrap.js | 2276 +++
 data/ui/app/libs/jquery/component.json |   14 +
 data/ui/app/libs/jquery/composer.json  |   23 +
 data/ui/app/libs/jquery/jquery.js  | 9472 +
 data/ui/app/libs/ng-upload/ng-upload.js|  107 +
 data/ui/app/scripts/app.js |   30 +
 data/ui/app/scripts/controllers.js |   96 +
 data/ui/app/scripts/directives.js  |5 +
 data/ui/app/scripts/filters.js |5 +
 data/ui/app/scripts/serv

[tor-commits] [ooni-probe/master] Merge branch 'master' of ssh://git-rw.torproject.org/ooni-probe

2013-06-19 Thread art
commit 533841454da554359ef8a722f15b5d09b819923f
Merge: af03b56 4164537
Author: Arturo Filastò 
Date:   Mon Jun 17 13:03:15 2013 +0200

Merge branch 'master' of ssh://git-rw.torproject.org/ooni-probe

* 'master' of ssh://git-rw.torproject.org/ooni-probe:
  Add bridge and obfsproxy support to director when starting Tor

 ooni/director.py  |   16 
 ooniprobe.conf.sample |1 +
 2 files changed, 17 insertions(+)



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix #8353, catch error when OpenSSL not compiled with SSLv2 context.

2013-06-19 Thread art
commit abcb946b2d9bc9534b5e5649a3fe3a747a09f84f
Author: Isis Lovecruft 
Date:   Sat Jun 15 04:12:50 2013 +

Fix #8353, catch error when OpenSSL not compiled with SSLv2 context.

 * Change code to fallback to testing TLSv1 (the default) instead,
   and display a message to the user that if they really wish to
   test SSLv2 handshakes that it will be necessary for them to
   recompile OpenSSL with SSLv2 support.
---
 nettests/experimental/tls_handshake.py |   27 +--
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/nettests/experimental/tls_handshake.py 
b/nettests/experimental/tls_handshake.py
index 83b2868..5da2e8b 100644
--- a/nettests/experimental/tls_handshake.py
+++ b/nettests/experimental/tls_handshake.py
@@ -88,7 +88,12 @@ class SSLContextError(usage.UsageError):
 errors = {
 'NO_CONTEXT': 'No SSL/TLS context chosen! Defaulting to TLSv1.',
 'INCOMPATIBLE': str("Testing TLSv1 (option '--tls1') is incompatible "
-+ "with testing SSL ('--ssl2' and '--ssl3').") }
++ "with testing SSL ('--ssl2' and '--ssl3')."),
+'MISSING_SSLV2': str("Your version of OpenSSL was compiled without "
+ + "support for SSLv2. This is normal on newer "
+ + "versions of OpenSSL, but it means that you "
+ + "will be unable to test SSLv2 handshakes "
+ + "without recompiling OpenSSL."), }
 
 def __init__(self, message):
 if message in self.errors.keys():
@@ -164,12 +169,22 @@ class HandshakeTest(nettest.NetTestCase):
 except SSLContextError as sce: log.err(sce.message)
 finally: log.msg('Defaulting to testing only TLSv1.')
 elif options['ssl2']:
-if not options['ssl3']:
-self.context = SSL.Context(SSL.SSLv2_METHOD)
-else:
-self.context = SSL.Context(SSL.SSLv23_METHOD)
+try:
+if not options['ssl3']:
+context = SSL.Context(SSL.SSLv2_METHOD)
+else:
+context = SSL.Context(SSL.SSLv23_METHOD)
+except ValueError as ve:
+log.err(ve.message)
+try: raise SSLContextError('MISSING_SSLV2')
+except SSLContextError as sce:
+log.err(sce.message)
+log.msg("Falling back to testing only TLSv1.")
+context = SSL.Context(SSL.TLSv1_METHOD)
 elif options['ssl3']:
-self.context = SSL.Context(SSL.SSLv3_METHOD)
+context = SSL.Context(SSL.SSLv3_METHOD)
+## finally, reset the context if the user's choice was okay:
+if context: self.context = context
 
 ## if we weren't given a file with a list of ciphersuites to use,
 ## then use the firefox default list:



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Improve setup.py, fixup paths for reporting.

2013-06-19 Thread art
commit 3b889359329f6a90fd6d5538f6bf4e417cdf9b00
Author: Arturo Filastò 
Date:   Mon Apr 29 13:17:37 2013 +0200

Improve setup.py, fixup paths for reporting.
---
 data/ooniprobe.conf.sample |   13 +-
 decks/before_i_commit.testdeck |8 +++---
 ooni/__init__.py   |2 +-
 ooni/api/spec.py   |   55 +---
 ooni/nettest.py|8 --
 ooni/reporter.py   |6 +
 setup.py   |   17 ++---
 7 files changed, 89 insertions(+), 20 deletions(-)

diff --git a/data/ooniprobe.conf.sample b/data/ooniprobe.conf.sample
index 5528199..2b79d3e 100644
--- a/data/ooniprobe.conf.sample
+++ b/data/ooniprobe.conf.sample
@@ -4,7 +4,7 @@
 
 basic:
 # Where OONIProbe should be writing it's log file
-logfile: ooniprobe.log
+logfile: /var/log/ooniprobe.log
 privacy:
 # Should we include the IP address of the probe in the report?
 includeip: false
@@ -18,14 +18,13 @@ privacy:
 includepcap: false
 reports:
 # This is a packet capture file (.pcap) to load as a test:
-pcap: Null
+pcap: null
+collector: 'httpo://nkvphnp3p6agi5qq.onion'
 advanced:
-# XXX change this to point to the directory where you have stored the GeoIP
-# database file. This should be the directory in which OONI is installed
-# /path/to/ooni-probe/data/
-geoip_data_dir: /usr/share/GeoIP/
+geoip_data_dir: /usr/share/ooni/
 debug: true
-tor_binary: /usr/sbin/tor
+# enable if auto detection fails
+#tor_binary: /usr/sbin/tor
 # For auto detection
 interface: auto
 # Of specify a specific interface
diff --git a/decks/before_i_commit.testdeck b/decks/before_i_commit.testdeck
index d1b4062..1159a0d 100644
--- a/decks/before_i_commit.testdeck
+++ b/decks/before_i_commit.testdeck
@@ -5,7 +5,7 @@
 pcapfile: null
 reportfile: reports/captive_portal_test.yamloo
 subargs: []
-test_file: nettests/manipulation/captiveportal.py
+test_file: data/nettests/manipulation/captiveportal.py
 - options:
 collector: null
 help: 0
@@ -13,7 +13,7 @@
 pcapfile: null
 reportfile: reports/dns_tamper_test.yamloo
 subargs: [-T, example_inputs/dns_tamper_test_resolvers.txt, -f, 
example_inputs/dns_tamper_file.txt]
-test_file: nettests/blocking/dnsconsistency.py
+test_file: data/nettests/blocking/dnsconsistency.py
 - options:
 collector: null
 help: 0
@@ -21,7 +21,7 @@
 pcapfile: null
 reportfile: reports/http_host.yamloo
 subargs: [-b, 'http://93.95.227.200', -f, 
example_inputs/http_host_file.txt]
-test_file: nettests/manipulation/http_host.py
+test_file: data/nettests/manipulation/http_host.py
 - options:
 collector: null
 help: 0
@@ -29,4 +29,4 @@
 pcapfile: null
 reportfile: reports/header_field_manipulation.yamloo
 subargs: [-b, 'http://93.95.227.200']
-test_file: nettests/manipulation/http_header_field_manipulation.py
+test_file: data/nettests/manipulation/http_header_field_manipulation.py
diff --git a/ooni/__init__.py b/ooni/__init__.py
index 815e16e..1810a7f 100644
--- a/ooni/__init__.py
+++ b/ooni/__init__.py
@@ -7,7 +7,7 @@ from . import templates
 from . import utils
 
 __author__ = "Arturo Filastò"
-__version__ = "0.0.11"
+__version__ = "0.0.12"
 
 __all__ = ['config', 'inputunit', 'kit',
'lib', 'nettest', 'oonicli', 'reporter',
diff --git a/ooni/api/spec.py b/ooni/api/spec.py
index 39df2fd..071beaf 100644
--- a/ooni/api/spec.py
+++ b/ooni/api/spec.py
@@ -7,7 +7,7 @@ import types
 from twisted.python import usage
 from cyclone import web, escape
 
-from ooni.reporter import YAMLReporter, OONIBReporter
+from ooni.reporter import YAMLReporter, OONIBReporter, collector_supported
 from ooni import errors
 from ooni.nettest import NetTestLoader, MissingRequiredOption
 from ooni.settings import config
@@ -43,11 +43,21 @@ def list_inputs():
 return input_list
 
 class Inputs(ORequestHandler):
+"""
+This handler is responsible for listing and adding new inputs.
+"""
 def get(self):
+"""
+Obtain the list of currently installed inputs. Inputs are stored inside
+of $OONI_HOME/inputs/.
+"""
 input_list = list_inputs()
 self.write(input_list)
 
 def post(self):
+"""
+Add a new input to the currently installed inputs.
+"""
 input_file = self.request.files.get("file")[0]
 filename = input_file['filename']
 
@@ -72,6 +82,15 @@ class ListTests(ORequestHandler):
 self.write(test_list)
 
 def get_net_test_loader(test_options, test_file):
+"""
+Args:
+test_options: (dict) containing as keys the option names.
+
+test_file: (string) the path to the test_file to be run.
+Returns:
+an instance of :class:`ooni.nettest.NetTestLoader` with the specified
+test_file and the specified options.
+"""
 options 

[tor-commits] [ooni-probe/master] Add cyclone as a dependency

2013-06-19 Thread art
commit 28388e3522c3b82200f7afd2b748e2ac60525ead
Author: Arturo Filastò 
Date:   Tue May 7 18:59:27 2013 +0200

Add cyclone as a dependency
---
 requirements.txt |1 +
 1 file changed, 1 insertion(+)

diff --git a/requirements.txt b/requirements.txt
index bdf4cd0..4f951de 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13,6 +13,7 @@ zope.component>=4.0.0
 zope.event>=4.0.0
 zope.interface>=4.0.1
 Pyrex
+cyclone>=1.1
 #
 # This is a Tor Project mirror with valid SSL/TLS certs that is stable and fast
 #



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Add support for viewing test results and uploading inputs

2013-06-19 Thread art
commit 4f51cd3107bc1f9e65be587aeb3b41f7a584e3d7
Author: Arturo Filastò 
Date:   Thu Apr 25 13:33:46 2013 +0200

Add support for viewing test results and uploading inputs
---
 data/ui/app/index.html  |1 +
 data/ui/app/libs/ng-upload/ng-upload.js |  107 +++
 data/ui/app/scripts/app.js  |   21 +++---
 data/ui/app/scripts/controllers.js  |   36 ---
 data/ui/app/scripts/services.js |9 ++-
 data/ui/app/styles/app.css  |5 ++
 data/ui/app/views/inputs.html   |   31 +
 data/ui/app/views/sidebar.html  |4 ++
 data/ui/app/views/test-list.html|   38 ---
 data/ui/app/views/test-status.html  |7 --
 data/ui/app/views/test.html |   42 
 ooni/api/spec.py|6 +-
 12 files changed, 239 insertions(+), 68 deletions(-)

diff --git a/data/ui/app/index.html b/data/ui/app/index.html
index a903ceb..c304066 100644
--- a/data/ui/app/index.html
+++ b/data/ui/app/index.html
@@ -28,6 +28,7 @@
 
   
   
+  
   
   
   
diff --git a/data/ui/app/libs/ng-upload/ng-upload.js 
b/data/ui/app/libs/ng-upload/ng-upload.js
new file mode 100644
index 000..fae7a44
--- /dev/null
+++ b/data/ui/app/libs/ng-upload/ng-upload.js
@@ -0,0 +1,107 @@
+// Version 0.3.2
+// AngularJS simple file upload directive
+// this directive uses an iframe as a target
+// to enable the uploading of files without
+// losing focus in the ng-app.
+//
+// 
+//   
+// 
+//  
+//  
+//
+//  
+// 
+//
+//  angular.module('app', ['ngUpload'])
+//.controller('mainCtrl', function($scope) {
+//  $scope.submited = function(content, completed) {
+//if (completed) {
+//  console.log(content);
+//}
+//  }  
+//  });
+//
+angular.module('ngUpload', [])
+  .directive('uploadSubmit', ['$parse', function($parse) {
+return {
+  restrict: 'AC',
+  link: function(scope, element, attrs) {
+// Options (just 1 for now) 
+// Each option should be prefixed with 'upload-options-' or 
'uploadOptions'
+// {
+//// specify whether to enable the submit button when uploading 
forms
+//enableControls: bool 
+// }
+var options = {};
+options.enableControls = attrs.uploadOptionsEnableControls;
+
+// submit the form - requires jQuery
+var form = element.parents('form[ng-upload]') || 
element.parents('form.ng-upload'); 
+
+// Retrieve the callback function
+var fn = $parse(attrs.uploadSubmit);
+
+if (!angular.isFunction(fn)) {
+var message = "The expression on the ngUpload directive does not 
point to a valid function.";
+throw message + "\n";
+}
+
+element.bind('click', function($event) {
+  // prevent default behavior of click
+  $event.preventDefault = true;
+  // create a new iframe
+  var iframe = angular.element("");
+
+  // attach function to load event of the iframe
+  iframe.bind('load', function () {
+// get content - requires jQuery
+var content = iframe.contents().find('body').text();
+// execute the upload response function in the active scope
+scope.$apply(function () { 
+  fn(scope, { content: content, completed: true});
+});
+// remove iframe
+if (content !== "") { // Fixes a bug in Google Chrome that dispose 
the iframe before content is ready.
+setTimeout(function () { iframe.remove(); }, 250);
+}
+element.attr('disabled', null);
+element.attr('title', 'Click to start upload.');
+  });
+
+  // add the new iframe to application
+  form.parent().append(iframe);
+
+  scope.$apply(function () { 
+fn(scope, {content: "Please wait...", completed: false }); 
+  });
+
+  var enabled = true;
+  if (!options.enableControls) {
+  // disable the submit control on click
+  element.attr('disabled', 'disabled');
+  enabled = false;
+  }
+  // why do we need this???
+  element.attr('title', (enabled ? '[ENABLED]: ' : '[DISABLED]: ') + 
'Uploading, please wait...');
+
+  form.submit();
+
+}).attr('title', 'Click to start upload.');
+  }
+};
+  }])
+  .directive('ngUpload', ['$parse', function ($parse) {
+return {
+  restrict: 'AC',
+  link: function (scope, element, attrs) {
+element.attr("target", "upload_iframe");
+element.attr("method", "post");
+// Append a timestamp field to the url to prevent browser caching 
results
+element.attr("action", element.attr("action") + "?_t=" + new 
Date().getTime());
+element.attr("enctype", "multipart/form-data");
+element.attr("encoding", "multipart/for

[tor-commits] [ooni-probe/master] Fix two minor bugs

2013-06-19 Thread art
commit af03b561539e48c3dc13cc76a8b03699757f80ed
Author: Arturo Filastò 
Date:   Thu Jun 13 12:56:35 2013 +0200

Fix two minor bugs
---
 ooni/oonicli.py |2 +-
 ooni/tasks.py   |3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index c64710e..354cebc 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -159,7 +159,7 @@ def runWithDirector():
 yaml_reporter = YAMLReporter(test_details)
 reporters = [yaml_reporter]
 
-if collector and collector.startswith('httpo') \
+if collector and collector.startswith('httpo:') \
 and (not (config.tor_state or config.tor.socks_port)):
 raise errors.TorNotRunning
 elif collector:
diff --git a/ooni/tasks.py b/ooni/tasks.py
index 428fdbf..89c2d5e 100644
--- a/ooni/tasks.py
+++ b/ooni/tasks.py
@@ -69,7 +69,7 @@ class TaskWithTimeout(BaseTask):
 
 def _timedOut(self):
 """Internal method for handling timeout failure"""
-if not self._running.called:
+if self._running and not self._running.called:
 self._running.cancel()
 self._failed(TaskTimedOut)
 
@@ -92,6 +92,7 @@ class TaskWithTimeout(BaseTask):
 
 class Measurement(TaskWithTimeout):
 timeout = config.advanced.measurement_timeout
+netTest = None
 
 def __init__(self, test_class, test_method, test_input):
 """



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Place data files into proper sub-directory structure

2013-06-19 Thread art
commit 8ed046958dca07f8e7cf051ed3e6617b1ed3c6e1
Author: Arturo Filastò 
Date:   Thu Jun 6 18:15:31 2013 +0200

Place data files into proper sub-directory structure
---
 setup.py |9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/setup.py b/setup.py
index 6ebca7b..c0487b1 100644
--- a/setup.py
+++ b/setup.py
@@ -2,6 +2,7 @@
 #-*- coding: utf-8 -*-
 
 import os
+from os.path import join as pj
 import sys
 from distutils.core import setup
 
@@ -16,13 +17,13 @@ dependency_links = [
 'https://people.torproject.org/~ioerror/src/mirrors/ooniprobe'
 ]
 
-files = []
+data_files = []
 for root, dirs, file_names in os.walk('data/'):
+files = []
 for file_name in file_names:
 if not file_name.endswith('.pyc'):
-files.append(os.path.join(root, file_name))
-
-data_files = [('/usr/share/ooni/', files)]
+files.append(pj(root, file_name))
+data_files.append([pj('/usr/share/ooni', root), files])
 
 with open('requirements.txt') as f:
 for line in f:



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix bug in importing of geodata

2013-06-19 Thread art
commit f6c4dbbe817e8fc6dd4670108c508ce2918e9762
Author: Arturo Filastò 
Date:   Thu Jun 13 14:21:45 2013 +0200

Fix bug in importing of geodata
---
 ooni/nettest.py |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index acca335..80c1965 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -8,7 +8,7 @@ from twisted.python import usage, reflect
 
 from ooni import geoip
 from ooni.tasks import Measurement
-from ooni.utils import log, checkForRoot, geodata
+from ooni.utils import log, checkForRoot
 from ooni import otime
 from ooni.settings import config
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Actually we are already root, no need for sudo

2013-06-19 Thread art
commit fad84ef936bfe825034c15c87a6ef5bfc5c079d5
Author: Arturo Filastò 
Date:   Thu Jun 13 14:56:59 2013 +0200

Actually we are already root, no need for sudo
---
 Vagrantfile |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Vagrantfile b/Vagrantfile
index 10ec592..7a03508 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -131,7 +131,7 @@ cd /tmp/
 curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
 python ./get-pip.py  ## pip (>=1.3.0) is recommended for security reasons
 
-sudo update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip 0
+update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip 0
 
 cd /data/ooniprobe
 
@@ -140,7 +140,7 @@ pip install pyrex
 pip install -r requirements.txt
 
 echo "Installing ooniprobe"
-sudo python setup.py install
+python setup.py install
 
 echo "Fetching all inputs"
 cd /data/ooniprobe/inputs



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix bug in HTTP api

2013-06-19 Thread art
commit 21ae4fb974e3eea55929e1613d29d1675fe4e03a
Author: Arturo Filastò 
Date:   Thu Jun 6 17:45:19 2013 +0200

Fix bug in HTTP api
---
 ooni/api/spec.py |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ooni/api/spec.py b/ooni/api/spec.py
index f707253..ecd514c 100644
--- a/ooni/api/spec.py
+++ b/ooni/api/spec.py
@@ -164,7 +164,7 @@ class StartTest(ORequestHandler):
 test_file = oonidApplication.director.netTests[test_name]['path']
 test_options = json.loads(self.request.body)
 tmp_files = []
-if (test_options['manual_input']):
+if ('manual_input' in test_options):
 for option, content in test_options['manual_input'].items():
 fd, path = write_temporary_input(content)
 test_options[option] = path



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix import lost in merge

2013-06-19 Thread art
commit 8277bf7463537b5f438e6f23db0bf041698aa10e
Author: Arturo Filastò 
Date:   Thu Jun 6 17:50:21 2013 +0200

Fix import lost in merge
---
 ooni/nettest.py |1 +
 1 file changed, 1 insertion(+)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index f09df73..acca335 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -1,5 +1,6 @@
 import os
 import re
+import time
 
 from twisted.internet import defer, reactor
 from twisted.trial.runner import filenameToModule



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Add oonid script to run ooni daemon

2013-06-19 Thread art
commit 22c0c16f8eb9b7fa5680e8f23167ded4a7082835
Author: Arturo Filastò 
Date:   Mon Jun 3 17:56:11 2013 +0200

Add oonid script to run ooni daemon
---
 bin/oonid |7 +++
 1 file changed, 7 insertions(+)

diff --git a/bin/oonid b/bin/oonid
new file mode 100755
index 000..dd59eb9
--- /dev/null
+++ b/bin/oonid
@@ -0,0 +1,7 @@
+#!/bin/bash
+# XXX This is very Ghetto. The proper way to do this is to make a twisted
+# plugin. The plugin will then be installed and can then be run directly with
+# `twistd oonid`
+
+OONID_PATH=`python -c 'import ooni;import os;print 
os.path.join(os.path.dirname(os.path.abspath(ooni.__file__)), "oonid.py")'`
+twistd -y $OONID_PATH



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'master' into feature/ui

2013-06-19 Thread art
commit 2e0da24fb07ac2b6b8669926b8c14161b5406733
Merge: 21ae4fb 3f9035f
Author: Arturo Filastò 
Date:   Thu Jun 6 17:49:40 2013 +0200

Merge branch 'master' into feature/ui

* master:
  Only process the input when we are dealing with URLs
  Remove really old Makefile which seems to no longer point to valid 
directories.
  Remove oonib report archival script.
  Remove line to ignore oonib/oonibackend.conf from .gitignore.
  Remove log factory for oonib from ooni/utils/log.py.
  Remove old bin/oonib script.
  Stop reactor when we can't start the sniffer.
  Strip superflous data from ASN number
  Fix import error for pushFilenameStack
  Add Dominic Hamon's nettest for running tests written with other 
interpreters.
  Parsley 1.1 is now in pypi so we don't have to mirror it.
  Remove unused geodata module that depended on pygeoip
  Explicit versions of scapy, parsley and dnspython
  Remove oonib from ooni-probe repo.
  Update requirements.txt to what twisted wants.
  Include by default the details of the probe
  Add extra commands to step 1
  Add URL inputProcessor to tcpconnect
  Add inputProcessor to http_host
  Set pcap name for each NetTest, and use consistent timestamps.

Conflicts:
ooni/config.py
ooni/director.py
ooni/nettest.py
ooni/utils/geodata.py
requirements.txt

 .gitignore  |1 -
 Makefile|  202 ---
 README.md   |2 +
 data/nettests/blocking/tcpconnect.py|   24 
 data/nettests/manipulation/http_host.py |   10 ++
 data/ooniprobe.conf.sample  |8 +-
 nettests/experimental/script.py |   90 ++
 ooni/director.py|   21 +++-
 ooni/geoip.py   |2 +-
 ooni/nettest.py |4 +-
 ooni/otime.py   |2 +
 ooni/reporter.py|2 +-
 ooni/utils/geodata.py   |   40 --
 ooni/utils/log.py   |   15 ---
 requirements.txt|   23 ++--
 scripts/archive_reports.py  |  174 --
 16 files changed, 162 insertions(+), 458 deletions(-)

diff --cc data/nettests/blocking/tcpconnect.py
index 3b22427,000..5b432e0
mode 100644,00..100644
--- a/data/nettests/blocking/tcpconnect.py
+++ b/data/nettests/blocking/tcpconnect.py
@@@ -1,45 -1,0 +1,69 @@@
 +# -*- encoding: utf-8 -*-
 +from twisted.internet.protocol import Factory, Protocol
 +from twisted.internet.endpoints import TCP4ClientEndpoint
 +
 +from twisted.internet.error import ConnectionRefusedError
 +from twisted.internet.error import TCPTimedOutError, TimeoutError
 +
 +from ooni import nettest
 +from ooni.errors import handleAllFailures
 +from ooni.utils import log
 +
 +class TCPFactory(Factory):
 +def buildProtocol(self, addr):
 +return Protocol()
 +
 +class TCPConnectTest(nettest.NetTestCase):
 +name = "TCP Connect"
 +author = "Arturo Filastò"
 +version = "0.1"
 +inputFile = ['file', 'f', None,
 +'File containing the IP:PORT combinations to be tested, one per 
line']
 +
 +requiredOptions = ['file']
 +def test_connect(self):
 +"""
 +This test performs a TCP connection to the remote host on the 
specified port.
 +the report will contains the string 'success' if the test has
 +succeeded, or the reason for the failure if it has failed.
 +"""
 +host, port = self.input.split(":")
 +def connectionSuccess(protocol):
 +protocol.transport.loseConnection()
 +log.debug("Got a connection to %s" % self.input)
 +self.report["connection"] = 'success'
 +
 +def connectionFailed(failure):
 +self.report['connection'] = handleAllFailures(failure)
 +
 +from twisted.internet import reactor
 +point = TCP4ClientEndpoint(reactor, host, int(port))
 +d = point.connect(TCPFactory())
 +d.addCallback(connectionSuccess)
 +d.addErrback(connectionFailed)
 +return d
 +
++def inputProcessor(self, filename=None):
++"""
++This inputProcessor extracts name:port pairs from urls
++XXX: Does not support unusual port numbers
++"""
++def strip_url(address):
++proto, path = x.strip().split('://')
++proto = proto.lower()
++host = path.split('/')[0]
++if proto == 'http':
++return "%s:80" % host
++if proto == 'https':
++return "%s:443" % host
++
++if filename:
++fp = open(filename)
++for x in fp.readlines():
++if x.startswith("http"):
++yield strip_url(x)
++else:
++

[tor-commits] [ooni-probe/master] Run setup.py script as root

2013-06-19 Thread art
commit b3812e2748ea1c9553ac2400c12d9ec967ebbaf0
Author: Arturo Filastò 
Date:   Thu Jun 13 14:55:27 2013 +0200

Run setup.py script as root
Install the stable pip, before upgrading
---
 Vagrantfile |   18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/Vagrantfile b/Vagrantfile
index 52107e8..10ec592 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -113,14 +113,6 @@ end
 $script = <

[tor-commits] [ooni-probe/master] Merge branch 'master' into feature/ui

2013-06-19 Thread art
commit c8ee22a8afc3fd7f3525d1f1d4e717f3aadd2713
Merge: 673236c 5782f32
Author: Arturo Filastò 
Date:   Sun May 5 17:52:44 2013 +0200

Merge branch 'master' into feature/ui

* master: (69 commits)
  Implement Vagrant file for running ooniprobe on any platform
  Have some slightly saner defaults for the config file
  Fix markup of README file
  Fix markup of code
  Swallow the report creation failure so that it does not propagate
  Fix tls_handshake input processing
  Fix import conflict
  Set self.input to self.host if no inputFile, and update several log 
messages.
  Reformat docstrings for several HandshakeTest functions to Sphinx format.
  Rename HandshakeTest.test_tlsv1_handshake() to 
HandshakeTest.test_handshake().
  Cleanup docstrings for getX509Name() and getPublicKey() functions.
  Add Sphinx docstring for getPeerCert() function.
  Move to call IPAddress explicitly from ipaddr.IPAdress.
  Add self.host to the inputProcessor().
  If no ciphersuite list is provided, explain that we're using firefox's.
  Fix bug where conflicting SSL context choices was not explained to the 
user.
  Fix #8440, set the self.host attribute when given the --host option.
  Create a host attribute for storing the --host option, and set 
self.ciphers.
  Make 'context' be a class-level attribute and give it a Sphinx :attr: 
docstring.
  Bump the version number on HandshakeTest, and rename the usageOptions 
attribute.
  ...

Conflicts:
data/ooniprobe.conf.sample
ooni/director.py

 .gitignore |2 +
 README.md  |  161 +--
 Vagrantfile|  153 ++
 data/ooniprobe.conf.sample |4 +-
 docs/fabfile.py|   22 +
 inputs/Makefile|3 +-
 nettests/experimental/tls_handshake.py |  794 
 ooni/reporter.py   |3 +-
 ooni/utils/txscapy.py  |1 +
 setup.py   |4 +-
 10 files changed, 1089 insertions(+), 58 deletions(-)

diff --cc data/ooniprobe.conf.sample
index 2b79d3e,000..a12b526
mode 100644,00..100644
--- a/data/ooniprobe.conf.sample
+++ b/data/ooniprobe.conf.sample
@@@ -1,55 -1,0 +1,55 @@@
 +# This is the configuration file for OONIProbe
 +# This file follows the YAML markup format: http://yaml.org/spec/1.2/spec.html
 +# Keep in mind that indentation matters.
 +
 +basic:
 +# Where OONIProbe should be writing it's log file
 +logfile: /var/log/ooniprobe.log
 +privacy:
 +# Should we include the IP address of the probe in the report?
 +includeip: false
 +# Should we include the ASN of the probe in the report?
 +includeasn: false
 +# Should we include the country as reported by GeoIP in the report?
 +includecountry: false
 +# Should we include the city as reported by GeoIP in the report?
 +includecity: false
 +# Should we collect a full packet capture on the client?
 +includepcap: false
 +reports:
 +# This is a packet capture file (.pcap) to load as a test:
 +pcap: null
 +collector: 'httpo://nkvphnp3p6agi5qq.onion'
 +advanced:
 +geoip_data_dir: /usr/share/ooni/
 +debug: true
 +# enable if auto detection fails
 +#tor_binary: /usr/sbin/tor
 +# For auto detection
 +interface: auto
 +# Of specify a specific interface
 +#interface: wlan0
 +# If you do not specify start_tor, you will have to have Tor running and
 +# explicitly set the control port and SOCKS port
- start_tor: true
++start_tor: false
 +# After how many seconds we should give up on a particular measurement
 +measurement_timeout: 30
 +# After how many retries we should give up on a measurement
 +measurement_retries: 2
 +# How many measurments to perform concurrently
 +measurement_concurrency: 100
 +# After how may seconds we should give up reporting
 +reporting_timeout: 30
 +# After how many retries to give up on reporting
 +reporting_retries: 3
 +# How many reports to perform concurrently
 +reporting_concurrency: 20
 +tor:
- #socks_port: 9050
++socks_port: 9050
 +#control_port: 9051
 +# Specify the absolute path to the Tor bridges to use for testing
 +#bridges: bridges.list
 +# Specify path of the tor datadirectory.
 +# This should be set to something to avoid having Tor download each time
 +# the descriptors and consensus data.
 +#data_dir: ~/.tor/
diff --cc setup.py
index 454984d,e336e08..1ae39d4
--- a/setup.py
+++ b/setup.py
@@@ -13,19 -11,9 +13,17 @@@ install_requires = 
  ]
  
  dependency_links = [
- 'https://people.torproject.org/~ioerror/src/mirrors/ooniprobe',
- 'https://github.com/hellais/pypcap/archive/v1.1.1.tar.gz#egg=pypcap-1.1.1'
+ 'https://people.torproject.org/~ioerror/src/mirrors/oon

[tor-commits] [ooni-probe/master] Merge branch 'feature/task_manager' into feature/ui

2013-06-19 Thread art
commit 81c53bbc6107d955731eabe6d41e24c586d07122
Merge: 3b88935 056a24b
Author: Arturo Filastò 
Date:   Mon Apr 29 18:15:47 2013 +0200

Merge branch 'feature/task_manager' into feature/ui

* feature/task_manager:
  Make how we keep track of successful reports more robust.

 ooni/reporter.py |   12 ++--
 ooni/tasks.py|   19 +++
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --cc ooni/reporter.py
index 1095cb1,732d516..5d8f92b
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@@ -32,9 -32,9 +32,9 @@@ from ooni import otim
  from ooni.utils import geodata, pushFilenameStack
  from ooni.utils.net import BodyReceiver, StringProducer, userAgents
  
 -from ooni import config
 +from ooni.settings import config
  
- from ooni.tasks import ReportEntry, TaskTimedOut
+ from ooni.tasks import ReportEntry, TaskTimedOut, ReportTracker
  
  class ReporterException(Exception):
  pass
diff --cc ooni/tasks.py
index f686a9c,428fdbf..35f1236
--- a/ooni/tasks.py
+++ b/ooni/tasks.py
@@@ -129,7 -129,28 +129,26 @@@ class Measurement(TaskWithTimeout)
  d = self.netTestMethod()
  return d
  
+ class ReportTracker(object):
+ def __init__(self, reporters):
+ self.report_completed = 0
+ self.reporters = reporters
+ 
+ def finished(self):
+ """
+ Returns true if all the tasks are done. False if not.
+ """
+ if self.report_completed == len(self.reporters):
+ return True
+ return False
+ 
+ def completed(self):
+ """
+ Called when a new report is completed.
+ """
+ self.report_completed += 1
+ 
  class ReportEntry(TaskWithTimeout):
 -timeout = config.advanced.reporting_timeout
 -
  def __init__(self, reporter, measurement):
  self.reporter = reporter
  self.measurement = measurement



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Include jquery as dep

2013-06-19 Thread art
commit ccc53b5cd5d7cf1e96b9595b0e5d380ca6dd69e9
Author: Arturo Filastò 
Date:   Wed May 8 19:10:58 2013 +0200

Include jquery as dep

Fix bug in ng-upload
---
 data/ui/app/index.html  |1 +
 data/ui/app/libs/ng-upload/ng-upload.js |4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/data/ui/app/index.html b/data/ui/app/index.html
index c304066..5f3e376 100644
--- a/data/ui/app/index.html
+++ b/data/ui/app/index.html
@@ -28,6 +28,7 @@
 
   
   
+  
   
   
   
diff --git a/data/ui/app/libs/ng-upload/ng-upload.js 
b/data/ui/app/libs/ng-upload/ng-upload.js
index fae7a44..cedaa1f 100644
--- a/data/ui/app/libs/ng-upload/ng-upload.js
+++ b/data/ui/app/libs/ng-upload/ng-upload.js
@@ -38,7 +38,7 @@ angular.module('ngUpload', [])
 options.enableControls = attrs.uploadOptionsEnableControls;
 
 // submit the form - requires jQuery
-var form = element.parents('form[ng-upload]') || 
element.parents('form.ng-upload'); 
+var form = $(element).parents('form[ng-upload]') || 
$(element).parents('form.ng-upload'); 
 
 // Retrieve the callback function
 var fn = $parse(attrs.uploadSubmit);
@@ -104,4 +104,4 @@ angular.module('ngUpload', [])
 element.attr("encoding", "multipart/form-data");
   }
 };
-  }]);
\ No newline at end of file
+  }]);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Move sample config file to data subdirectory

2013-06-19 Thread art
commit 367e58128a9b7cb6c63897cfd24f6a246bcedd8a
Author: Arturo Filastò 
Date:   Tue Apr 23 16:58:59 2013 +0200

Move sample config file to data subdirectory
---
 data/ooniprobe.conf.sample |   56 
 ooniprobe.conf.sample  |   56 
 2 files changed, 56 insertions(+), 56 deletions(-)

diff --git a/data/ooniprobe.conf.sample b/data/ooniprobe.conf.sample
new file mode 100644
index 000..5528199
--- /dev/null
+++ b/data/ooniprobe.conf.sample
@@ -0,0 +1,56 @@
+# This is the configuration file for OONIProbe
+# This file follows the YAML markup format: http://yaml.org/spec/1.2/spec.html
+# Keep in mind that indentation matters.
+
+basic:
+# Where OONIProbe should be writing it's log file
+logfile: ooniprobe.log
+privacy:
+# Should we include the IP address of the probe in the report?
+includeip: false
+# Should we include the ASN of the probe in the report?
+includeasn: false
+# Should we include the country as reported by GeoIP in the report?
+includecountry: false
+# Should we include the city as reported by GeoIP in the report?
+includecity: false
+# Should we collect a full packet capture on the client?
+includepcap: false
+reports:
+# This is a packet capture file (.pcap) to load as a test:
+pcap: Null
+advanced:
+# XXX change this to point to the directory where you have stored the GeoIP
+# database file. This should be the directory in which OONI is installed
+# /path/to/ooni-probe/data/
+geoip_data_dir: /usr/share/GeoIP/
+debug: true
+tor_binary: /usr/sbin/tor
+# For auto detection
+interface: auto
+# Of specify a specific interface
+#interface: wlan0
+# If you do not specify start_tor, you will have to have Tor running and
+# explicitly set the control port and SOCKS port
+start_tor: true
+# After how many seconds we should give up on a particular measurement
+measurement_timeout: 30
+# After how many retries we should give up on a measurement
+measurement_retries: 2
+# How many measurments to perform concurrently
+measurement_concurrency: 100
+# After how may seconds we should give up reporting
+reporting_timeout: 30
+# After how many retries to give up on reporting
+reporting_retries: 3
+# How many reports to perform concurrently
+reporting_concurrency: 20
+tor:
+#socks_port: 9050
+#control_port: 9051
+# Specify the absolute path to the Tor bridges to use for testing
+#bridges: bridges.list
+# Specify path of the tor datadirectory.
+# This should be set to something to avoid having Tor download each time
+# the descriptors and consensus data.
+#data_dir: ~/.tor/
diff --git a/ooniprobe.conf.sample b/ooniprobe.conf.sample
deleted file mode 100644
index 27a4fb3..000
--- a/ooniprobe.conf.sample
+++ /dev/null
@@ -1,56 +0,0 @@
-# This is the configuration file for OONIProbe
-# This file follows the YAML markup format: http://yaml.org/spec/1.2/spec.html
-# Keep in mind that indentation matters.
-
-basic:
-# Where OONIProbe should be writing it's log file
-logfile: ooniprobe.log
-privacy:
-# Should we include the IP address of the probe in the report?
-includeip: false
-# Should we include the ASN of the probe in the report?
-includeasn: false
-# Should we include the country as reported by GeoIP in the report?
-includecountry: false
-# Should we include the city as reported by GeoIP in the report?
-includecity: false
-# Should we collect a full packet capture on the client?
-includepcap: false
-reports:
-# This is a packet capture file (.pcap) to load as a test:
-pcap: Null
-advanced:
-# XXX change this to point to the directory where you have stored the GeoIP
-# database file. This should be the directory in which OONI is installed
-# /path/to/ooni-probe/data/
-geoip_data_dir: /usr/share/GeoIP/
-debug: true
-tor_binary: '/usr/sbin/tor'
-# For auto detection
-interface: auto
-# Of specify a specific interface
-#interface: wlan0
-# If you do not specify start_tor, you will have to have Tor running and
-# explicitly set the control port and SOCKS port
-start_tor: true
-# After how many seconds we should give up on a particular measurement
-measurement_timeout: 30
-# After how many retries we should give up on a measurement
-measurement_retries: 2
-# How many measurments to perform concurrently
-measurement_concurrency: 100
-# After how may seconds we should give up reporting
-reporting_timeout: 30
-# After how many retries to give up on reporting
-reporting_retries: 3
-# How many reports to perform concurrently
-reporting_concurrency: 20
-tor:
-#socks_port: 9050
-#control_port: 9051
-# Specify the absolute path to the Tor bridges to use for testing
-bridges: 

[tor-commits] [ooni-probe/master] Merge branch 'feature/task_manager' into feature/daemon

2013-06-19 Thread art
commit 2cb42717a5aa18a47f86fd8db364e124435cdea8
Merge: 033764e 2c80ceb
Author: Arturo Filastò 
Date:   Mon Apr 22 18:37:30 2013 +0200

Merge branch 'feature/task_manager' into feature/daemon

* feature/task_manager: (70 commits)
  Disabled test_pushFilenameStack, because it's failing in travis
  Use absolute filepath instead of relative
  Only run trial unittests
  Fix typo in ooniprobe sample config file
  Add libpcap-dev to dependencies
  Install pyrex and python deps via pip
  Also run the unittests
  Fix travis file
  Further debugging and code robustness
  Set the tor_state GeoIP class attribute on startup
  Bump version to 0.0.11
  Clean up tests for updated ooni codebase
  Final cleanup and bugfixing for task_manager
  Pass the IP address of the probe instead of an object
  Make reporting more robust
  Make the starting of ooniprobe via cmd line more robust
  Parametrize task timeout and retry count
  Add option to disable the default collector
  Raise NoMoreReporters exception on failure
  Fix typo in test deck before_i_commit
  ...

Conflicts:
ooni/config.py
ooni/director.py
ooni/errors.py
ooni/managers.py
ooni/nettest.py
ooni/oonicli.py
ooni/reporter.py
ooni/tests/disabled_test_utils.py
ooni/tests/test-class-design.py
ooni/tests/test_director.py
ooni/tests/test_nettest.py
ooni/tests/test_reporter.py
ooni/tests/test_utils.py
ooniprobe.conf.sample
tests/test_utils.py

 .travis.yml|   17 ++
 HACKING|2 +-
 README.md  |4 +
 docs/source/tests/dnsspoof.rst |2 +-
 nettests/examples/example_dns_http.py  |   11 +
 nettests/experimental/dns_injection.py |   63 ++
 nettests/experimental/http_filtering_bypassing.py  |   84 +++
 nettests/experimental/http_trix.py |   47 
 .../manipulation/http_header_field_manipulation.py |4 +-
 nettests/manipulation/http_host.py |   64 --
 nettests/manipulation/http_invalid_request_line.py |5 +-
 ooni/__init__.py   |4 +-
 ooni/director.py   |   44 ++--
 ooni/errors.py |   33 ++-
 ooni/geoip.py  |  190 
 ooni/managers.py   |   18 +-
 ooni/nettest.py|   86 +--
 ooni/oonicli.py|   47 ++--
 ooni/reporter.py   |  180 +++
 ooni/tasks.py  |5 +
 ooni/templates/dnst.py |   10 +-
 ooni/templates/httpt.py|8 +-
 ooni/templates/scapyt.py   |5 +-
 ooni/templates/tcpt.py |2 +
 ooni/tests/disabled_test_utils.py  |   21 ++
 ooni/tests/mocks.py|2 +-
 ooni/tests/test-class-design.py|  101 -
 ooni/tests/test_director.py|   58 -
 ooni/tests/test_nettest.py |   57 ++---
 ooni/tests/test_reporter.py|  234 
 ooni/tests/test_utils.py   |   20 --
 ooni/utils/__init__.py |7 +-
 ooni/utils/geodata.py  |1 +
 ooni/utils/txscapy.py  |8 +
 ooniprobe.conf.sample  |   18 +-
 requirements.txt   |5 +-
 setup.py   |   55 +++--
 37 files changed, 845 insertions(+), 677 deletions(-)

diff --cc ooni/director.py
index a9daf84,7ad99a9..5f23668
--- a/ooni/director.py
+++ b/ooni/director.py
@@@ -82,29 -83,11 +85,34 @@@ class Director(object)
  
  self.torControlProtocol = None
  
 +def getNetTests(self):
 +nettests = {}
 +def is_nettest(filename):
 +return not filename == '__init__.py' \
 +and filename.endswith('.py')
 +
 +for category in self.categories:
 +dirname = os.path.join(config.nettest_directory, category)
 +# print path to all filenames.
 +for filename in os.listdir(dirname):
 +if is_nettest(filename):
 +net_test_file = os.path.join(dirname, filename)
 +nettest = getNetTestInformation(net_test_file)
 +
 +if nettest['id'] in nettests:
 +log.err("Found a two tests with the same name %s, %s" 
%
 +

[tor-commits] [ooni-probe/master] Bump to version 0.1.0

2013-06-19 Thread art
commit b73fa7c06a9fbd59ba1a792200e767e1b03ff669
Author: Arturo Filastò 
Date:   Wed May 8 16:44:02 2013 +0200

Bump to version 0.1.0
---
 ooni/__init__.py |2 +-
 setup.py |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ooni/__init__.py b/ooni/__init__.py
index 1810a7f..9663b08 100644
--- a/ooni/__init__.py
+++ b/ooni/__init__.py
@@ -7,7 +7,7 @@ from . import templates
 from . import utils
 
 __author__ = "Arturo Filastò"
-__version__ = "0.0.12"
+__version__ = "0.1.0"
 
 __all__ = ['config', 'inputunit', 'kit',
'lib', 'nettest', 'oonicli', 'reporter',
diff --git a/setup.py b/setup.py
index 1ae39d4..6ebca7b 100644
--- a/setup.py
+++ b/setup.py
@@ -32,7 +32,7 @@ with open('requirements.txt') as f:
 
 setup(
 name="ooni-probe",
-version="0.0.12",
+version="0.1.0",
 author="Arturo Filastò",
 author_email = "a...@torproject.org",
 url="https://ooni.torproject.org/";,



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Remove oonib related data from ooniprobe

2013-06-19 Thread art
commit 42b43f0a8ae841546f00f49e1b26b511e42ec1b0
Author: Arturo Filastò 
Date:   Thu Apr 25 16:05:01 2013 +0200

Remove oonib related data from ooniprobe
---
 bin/oonib |   36 ---
 oonib/INSTALL |4 -
 oonib/README.md   |  117 --
 oonib/__init__.py |   24 -
 oonib/config.py   |   58 ---
 oonib/db/__init__.py  |   30 --
 oonib/db/tables.py|  123 ---
 oonib/models.py   |  129 -
 oonib/oonibackend.py  |   74 --
 oonib/report/__init__.py  |5 -
 oonib/report/api.py   |  106 
 oonib/report/file_collector.py|  193 -
 oonib/requirements.txt|   24 -
 oonib/runner.py   |   81 
 oonib/testhelpers/__init__.py |5 -
 oonib/testhelpers/dns_helpers.py  |   16 ---
 oonib/testhelpers/http_helpers.py |  154 -
 oonib/testhelpers/ssl_helpers.py  |9 --
 oonib/testhelpers/tcp_helpers.py  |   72 --
 19 files changed, 1260 deletions(-)

diff --git a/bin/oonib b/bin/oonib
deleted file mode 100755
index 79885ba..000
--- a/bin/oonib
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import os
-# Avoid the export PYTHONPATH insanity
-sys.path[:] = map(os.path.abspath, sys.path)
-this_directory = os.path.dirname(__file__)
-root = os.path.abspath(os.path.join(this_directory, '..'))
-sys.path.insert(0, root)
-
-backend_script = os.path.join(root, 'oonib', 'oonibackend.py')
-
-from twisted.python import log, usage
-from twisted.internet import reactor
-from twisted.application import app
-
-from oonib import runner
-from oonib.oonibackend import application
-
-sys.argv[1:] = ['-ny', backend_script]
-
-# Uncomment this line to daemonize
-#sys.argv[1:] = ['-y', backend_script]
-
-def runApp(config):
-runner.OBaseRunner(config).run()
-
-config = runner.ServerOptions()
-try:
-config.parseOptions()
-except usage.error, ue:
-print config
-print "%s: %s" % (sys.argv[0], ue)
-else:
-runApp(config)
-
diff --git a/oonib/INSTALL b/oonib/INSTALL
deleted file mode 100644
index 1622707..000
--- a/oonib/INSTALL
+++ /dev/null
@@ -1,4 +0,0 @@
-BEWARE: This requires python 2.7.3
-storm (Storm ORM)
-transaction (zope transaction)
-
diff --git a/oonib/README.md b/oonib/README.md
deleted file mode 100644
index d11f876..000
--- a/oonib/README.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# Dependencies
-
-The extra dependencies necessary to run OONIB are:
-
-* twisted-names
-* cyclone: https://github.com/fiorix/cyclone
-
-We recommend that you use a python virtualenv. See OONI's README.md.
-
-# Generate self signed certs for OONIB
-
-If you want to use the HTTPS test helper, you will need to create a 
certificate:
-
-openssl genrsa -des3 -out private.key 4096
-openssl req -new -key private.key -out server.csr
-cp private.key private.key.org
-# Remove passphrase from key
-openssl rsa -in private.key.org -out private.key
-openssl x509 -req -days 365 -in server.csr -signkey private.key -out 
certificate.crt
-rm private.key.org
-
-Don't forget to update oonib/config.py options helpers.ssl.private_key and
-helpers.ssl.certificate
-
-# Redirect low ports with iptables
-
-The following iptables commands will map connections on low ports to those 
bound by oonib
-
-# Map port 80 to config.helpers.http_return_request.port  (default: 57001)
-iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT 
--to-ports 57001
-# Map port 443 to config.helpers.ssl.port  (default: 57006)
-iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT 
--to-ports 57006
-# Map port 53 udp to config.helpers.dns.udp_port (default: 57004)
-iptables -t nat -A PREROUTING -p tcp -m udp --dport 53 -j REDIRECT 
--tor-ports 
-# Map port 53 tcp to config.helpers.dns.tcp_port (default: 57005)
-iptables -t nat -A PREROUTING -p tcp -m tcp --dport 53 -j REDIRECT 
--tor-ports 
-
-# Install Tor (Debian).
-
-You will need a Tor binary on your system. For complete instructions, see also:
-
-https://www.torproject.org/docs/tor-doc-unix.html.en
-https://www.torproject.org/docs/rpms.html.en
-
-Add this line to your /etc/apt/sources.list, replacing 
-where appropriate:
-
-deb http://deb.torproject.org/torproject.org  main
-
-Add the Tor Project gpg key to apt:
-
-gpg --keyserver keys.gnupg.net --recv 886DDD89
-gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
-# Update apt and install the torproject keyring, tor, and geoipdb
-apt-get update
-apt-get install deb.torproject.org-keyring tor tor-geoipdb
-
-# Update ooni-probe/oonib/config.py
-
-Set config.main.tor_binary to your Tor path
-Set config.main.to

[tor-commits] [ooni-probe/master] Improve configuration management

2013-06-19 Thread art
commit c7f65ae7df71c469f9cf5db126f12bf1c11c49da
Author: Arturo Filastò 
Date:   Tue Apr 23 16:59:24 2013 +0200

Improve configuration management

* Install ooniprobe settings in the users home directory (~/.ooni)
* Define the paths for ooniprobe data directories
---
 ooni/__init__.py|2 -
 ooni/api/spec.py|2 +-
 ooni/config.py  |   98 ---
 ooni/director.py|   15 ---
 ooni/geoip.py   |3 +-
 ooni/managers.py|   18 +---
 ooni/nettest.py |2 +-
 ooni/oonicli.py |   11 -
 ooni/oonid.py   |2 +-
 ooni/reporter.py|2 +-
 ooni/settings.py|   92 
 ooni/tasks.py   |   10 ++---
 ooni/templates/httpt.py |2 +-
 ooni/templates/scapyt.py|2 +-
 ooni/tests/mocks.py |2 +-
 ooni/tests/test_managers.py |8 
 ooni/tests/test_nettest.py  |5 ++-
 ooni/utils/geodata.py   |2 +-
 ooni/utils/log.py   |2 +-
 ooni/utils/txscapy.py   |2 +-
 20 files changed, 149 insertions(+), 133 deletions(-)

diff --git a/ooni/__init__.py b/ooni/__init__.py
index cc4bf03..815e16e 100644
--- a/ooni/__init__.py
+++ b/ooni/__init__.py
@@ -1,7 +1,5 @@
 # -*- encoding: utf-8 -*-
 
-from . import config
-from . import kit
 from . import nettest
 from . import oonicli
 from . import reporter
diff --git a/ooni/api/spec.py b/ooni/api/spec.py
index af238f4..5b538b2 100644
--- a/ooni/api/spec.py
+++ b/ooni/api/spec.py
@@ -5,7 +5,7 @@ import types
 
 from cyclone import web, escape
 
-from ooni import config
+from ooni.settings import config
 
 class InvalidInputFilename(Exception):
 pass
diff --git a/ooni/config.py b/ooni/config.py
deleted file mode 100644
index 5aeb49d..000
--- a/ooni/config.py
+++ /dev/null
@@ -1,98 +0,0 @@
-import os
-import yaml
-
-from twisted.internet import reactor, threads, defer
-
-from ooni import otime
-from ooni.utils import Storage
-
-class TestFilenameNotSet(Exception):
-pass
-
-def get_root_path():
-this_directory = os.path.dirname(__file__)
-root = os.path.join(this_directory, '..')
-root = os.path.abspath(root)
-return root
-
-def createConfigFile():
-"""
-XXX implement me
-"""
-sample_config_file = os.path.join(get_root_path(), 'ooniprobe.conf.sample')
-
-def generatePcapFilename():
-if cmd_line_options['pcapfile']:
-reports.pcap = cmd_line_options['pcapfile']
-else:
-if cmd_line_options['test']:
-test_filename = os.path.basename(cmd_line_options['test'])
-else:
-test_filename = os.path.basename(cmd_line_options['testdeck'])
-
-test_name = '.'.join(test_filename.split(".")[:-1])
-frm_str = "report_%s_"+otime.timestamp()+".%s"
-reports.pcap = frm_str % (test_name, "pcap")
-
-class ConfigurationSetting(Storage):
-def __init__(self, key):
-config_file = os.path.join(get_root_path(), 'ooniprobe.conf')
-try:
-f = open(config_file)
-except IOError:
-createConfigFile()
-raise Exception("Unable to open config file. "\
-"Copy ooniprobe.conf.sample to ooniprobe.conf")
-
-config_file_contents = '\n'.join(f.readlines())
-configuration = yaml.safe_load(config_file_contents)
-
-try:
-for k, v in configuration[key].items():
-self[k] = v
-except AttributeError:
-pass
-
-basic = ConfigurationSetting('basic')
-advanced = ConfigurationSetting('advanced')
-privacy = ConfigurationSetting('privacy')
-tor = ConfigurationSetting('tor')
-
-data_directory = os.path.join(get_root_path(), 'data')
-nettest_directory = os.path.join(get_root_path(), 'nettests')
-inputs_directory = os.path.join(get_root_path(), 'inputs')
-
-reports = Storage()
-state = Storage()
-scapyFactory = None
-stateDict = None
-
-# XXX refactor this to use a database
-resume_lock = defer.DeferredLock()
-
-cmd_line_options = None
-resume_filename = None
-
-# XXX-Twisted this is used to check if we have started the reactor or not. It
-# is necessary because if the tests are already concluded because we have
-# resumed a test session then it will call reactor.run() even though there is
-# no condition that will ever stop it.
-# There should be a more twisted way of doing this.
-start_reactor = True
-tor_state = None
-tor_control = None
-config_file = None
-sample_config_file = None
-# This is used to store the probes IP address obtained via Tor
-probe_ip = None
-# This is used to keep track of the state of the sniffer
-sniffer_running = None
-
-logging = True
-
-if not resume_filename:
-resume_filename = os.path.join(get_root_path(), 'ooniprobe.resume')
-try:
-with open(resume_filename) as f: pass
-except IOError as e:
-with open(resume_filename, '

[tor-commits] [ooni-probe/master] Implement in-browser input file selection views

2013-06-19 Thread art
commit 13a65fd6adb798f6c2bdcc4584a5cff52e694d7c
Author: Arturo Filastò 
Date:   Mon Apr 29 18:54:01 2013 +0200

Implement in-browser input file selection views

This will allow the user to copy and paste the input file into a textarea.
---
 data/ui/app/scripts/controllers.js |   28 
 data/ui/app/views/test.html|   12 +---
 ooni/api/spec.py   |   33 +++--
 ooni/nettest.py|5 -
 4 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/data/ui/app/scripts/controllers.js 
b/data/ui/app/scripts/controllers.js
index 5ba24e1..c2a9c0d 100644
--- a/data/ui/app/scripts/controllers.js
+++ b/data/ui/app/scripts/controllers.js
@@ -49,7 +49,17 @@ ooniprobe.controller('TestCtrl', ['$scope', '$routeParams', 
'testStatus', 'Input
 
 ooniprobe.controller('TestBoxCtrl', ['$scope', 'startTest',
  function($scope, startTest) {
+  function hasAttributes(obj) {
+var count = 0;
+for (var i in obj)
+  count +=1;
+if ( count == 0 ) {
+  return false;
+}
+return true;
+  }
 
+  $scope.manualFileInput = {};
   $scope.startTest = function() {
 var options = {};
 
@@ -58,6 +68,13 @@ ooniprobe.controller('TestBoxCtrl', ['$scope', 'startTest',
   options[key] = option.value;
 });
 
+if (hasAttributes($scope.manualFileInput)) {
+  options['manual_input'] = {};
+  angular.forEach($scope.manualFileInput, function(value, key) {
+options['manual_input'][key] = value;
+  });
+}
+
 startTest($scope.testDetails.id, options).success(function(){
   $scope.updateTestStatus();
 });
@@ -65,4 +82,15 @@ ooniprobe.controller('TestBoxCtrl', ['$scope', 'startTest',
 
 }]);
 
+ooniprobe.controller('FileInput', ['$scope',
+ function($scope) {
+
+  $scope.manualShow = false;
+  $scope.toggleManualInput = function() {
+if ($scope.manualShow)
+  $scope.manualShow = false;
+else
+  $scope.manualShow = true;
+  }
 
+}]);
diff --git a/data/ui/app/views/test.html b/data/ui/app/views/test.html
index f92461a..fdd5931 100644
--- a/data/ui/app/views/test.html
+++ b/data/ui/app/views/test.html
@@ -8,11 +8,17 @@
 
   
 
-
-  {{name}}
-  
+
+  {{name}}
+  Toggle manual input
+  
+  
 {{input.filename}}
   
+  
+  
+
+  
 
 
 
diff --git a/ooni/api/spec.py b/ooni/api/spec.py
index 071beaf..fe18ccc 100644
--- a/ooni/api/spec.py
+++ b/ooni/api/spec.py
@@ -3,6 +3,7 @@ import re
 import copy
 import json
 import types
+import tempfile
 
 from twisted.python import usage
 from cyclone import web, escape
@@ -122,6 +123,20 @@ def get_reporters(net_test_loader):
 reporters.append(oonib_reporter)
 return reporters
 
+def write_temporary_input(content):
+"""
+Creates a temporary file for the given content.
+
+Returns:
+the path to the temporary file.
+"""
+fd, path = tempfile.mkstemp()
+with open(path, 'w') as f:
+f.write(content)
+f.close()
+print "This is the path %s" % path
+return fd, path
+
 class StartTest(ORequestHandler):
 def post(self, test_name):
 """
@@ -129,11 +144,25 @@ class StartTest(ORequestHandler):
 """
 test_file = oonidApplication.director.netTests[test_name]['path']
 test_options = json.loads(self.request.body)
+tmp_files = []
+if (test_options['manual_input']):
+for option, content in test_options['manual_input'].items():
+fd, path = write_temporary_input(content)
+test_options[option] = path
+tmp_files.append((fd, path))
+test_options.pop('manual_input')
+
 net_test_loader = get_net_test_loader(test_options, test_file)
 try:
 net_test_loader.checkOptions()
-oonidApplication.director.startNetTest(net_test_loader,
-   
get_reporters(net_test_loader))
+d = oonidApplication.director.startNetTest(net_test_loader,
+   
get_reporters(net_test_loader))
+@d.addBoth
+def cleanup(result):
+for fd, path in tmp_files:
+os.close(fd)
+os.remove(path)
+
 except MissingRequiredOption, option_name:
 self.write({'error':
 'Missing required option: "%s"' % option_name})
diff --git a/ooni/nettest.py b/ooni/nettest.py
index 66639f8..601fa24 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -132,8 +132,11 @@ def getArguments(test_class):
 
 for opt_parameter in test_class.usageOptions.optParameters:
 option_name = opt_parameter[

[tor-commits] [ooni-probe/master] Implement XSRF protection in the HTTP API

2013-06-19 Thread art
commit ccf125bce7cd3094bfd4bb8b1ce6b8d2d6890e22
Author: Arturo Filastò 
Date:   Tue May 7 18:59:10 2013 +0200

Implement XSRF protection in the HTTP API
---
 ooni/api/spec.py |   23 +++
 1 file changed, 23 insertions(+)

diff --git a/ooni/api/spec.py b/ooni/api/spec.py
index fe18ccc..f707253 100644
--- a/ooni/api/spec.py
+++ b/ooni/api/spec.py
@@ -4,6 +4,7 @@ import copy
 import json
 import types
 import tempfile
+import functools
 
 from twisted.python import usage
 from cyclone import web, escape
@@ -19,8 +20,18 @@ class InvalidInputFilename(Exception):
 class FilenameExists(Exception):
 pass
 
+def check_xsrf(method):
+@functools.wraps(method)
+def wrapper(self, *args, **kw):
+xsrf_header = self.request.headers.get("X-XSRF-TOKEN")
+if self.xsrf_token != xsrf_header:
+raise web.HTTPError(403, "Invalid XSRF token.")
+return method(self, *args, **kw)
+return wrapper
+
 class ORequestHandler(web.RequestHandler):
 serialize_lists = True
+xsrf_cookie_name = "XSRF-TOKEN"
 
 def write(self, chunk):
 """
@@ -33,6 +44,7 @@ class ORequestHandler(web.RequestHandler):
 web.RequestHandler.write(self, chunk)
 
 class Status(ORequestHandler):
+@check_xsrf
 def get(self):
 result = {'active_tests': oonidApplication.director.activeNetTests}
 self.write(result)
@@ -47,6 +59,8 @@ class Inputs(ORequestHandler):
 """
 This handler is responsible for listing and adding new inputs.
 """
+
+@check_xsrf
 def get(self):
 """
 Obtain the list of currently installed inputs. Inputs are stored inside
@@ -55,6 +69,7 @@ class Inputs(ORequestHandler):
 input_list = list_inputs()
 self.write(input_list)
 
+@check_xsrf
 def post(self):
 """
 Add a new input to the currently installed inputs.
@@ -76,6 +91,8 @@ class Inputs(ORequestHandler):
 fp.write(body)
 
 class ListTests(ORequestHandler):
+
+@check_xsrf
 def get(self):
 test_list = copy.deepcopy(oonidApplication.director.netTests)
 for test_id in test_list.keys():
@@ -138,6 +155,8 @@ def write_temporary_input(content):
 return fd, path
 
 class StartTest(ORequestHandler):
+
+@check_xsrf
 def post(self, test_name):
 """
 Starts a test with the specified options.
@@ -174,6 +193,8 @@ class StartTest(ORequestHandler):
 'Insufficient priviledges'})
 
 class StopTest(ORequestHandler):
+
+@check_xsrf
 def delete(self, test_name):
 pass
 
@@ -199,6 +220,8 @@ def get_test_results(test_id):
 return test_results
 
 class TestStatus(ORequestHandler):
+
+@check_xsrf
 def get(self, test_id):
 """
 Returns the requested test_id details and the stored results for such



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Implement starting and stopping of tests via the HTTP API

2013-06-19 Thread art
commit 6f8ee232576dc3a983dcafcdd42a71c0c1cfc0c2
Author: Arturo Filastò 
Date:   Wed Apr 24 21:14:59 2013 +0200

Implement starting and stopping of tests via the HTTP API
---
 ooni/api/spec.py   |   66 +---
 ooni/director.py   |7 ++---
 ooni/nettest.py|5 ++--
 ooni/oonicli.py|4 ++-
 ooni/settings.py   |6 
 ooni/tests/test_nettest.py |2 +-
 6 files changed, 78 insertions(+), 12 deletions(-)

diff --git a/ooni/api/spec.py b/ooni/api/spec.py
index 5b538b2..ec4cf4b 100644
--- a/ooni/api/spec.py
+++ b/ooni/api/spec.py
@@ -1,10 +1,15 @@
 import os
 import re
+import copy
 import json
 import types
 
+from twisted.python import usage
 from cyclone import web, escape
 
+from ooni.reporter import YAMLReporter, OONIBReporter
+from ooni import errors
+from ooni.nettest import NetTestLoader, MissingRequiredOption
 from ooni.settings import config
 
 class InvalidInputFilename(Exception):
@@ -39,6 +44,7 @@ def list_inputs():
 
 class Inputs(ORequestHandler):
 def get(self):
+input_list = list_inputs()
 self.write(input_list)
 
 def post(self):
@@ -59,23 +65,75 @@ class Inputs(ORequestHandler):
 
 class ListTests(ORequestHandler):
 def get(self):
-self.write(oonidApplication.director.netTests)
+test_list = copy.deepcopy(oonidApplication.director.netTests)
+for test_id in test_list.keys():
+test_list[test_id].pop('path')
+self.write(test_list)
+
+def get_net_test_loader(test_options, test_file):
+options = []
+for k, v in test_options.items():
+options.append('--'+k)
+options.append(v)
+
+net_test_loader = NetTestLoader(options,
+test_file=test_file)
+return net_test_loader
+
+def get_reporters(net_test_loader):
+test_details = net_test_loader.testDetails
+yaml_reporter = YAMLReporter(test_details, config.reports_directory)
+#oonib_reporter = OONIBReporter(test_details, collector)
+return [yaml_reporter]
 
 class StartTest(ORequestHandler):
 def post(self, test_name):
 """
 Starts a test with the specified options.
 """
-json.decode(self.request.body)
+test_file = oonidApplication.director.netTests[test_name]['path']
+test_options = json.loads(self.request.body)
+net_test_loader = get_net_test_loader(test_options, test_file)
+try:
+net_test_loader.checkOptions()
+oonidApplication.director.startNetTest(net_test_loader,
+   
get_reporters(net_test_loader))
+except MissingRequiredOption, option_name:
+self.write({'error':
+'Missing required option: "%s"' % option_name})
+except usage.UsageError, e:
+self.write({'error':
+'Error in parsing options'})
+except errors.InsufficientPrivileges:
+self.write({'error':
+'Insufficient priviledges'})
 
 class StopTest(ORequestHandler):
 def delete(self, test_name):
 pass
 
+def get_test_results(test_id):
+test_results = []
+for test_result in os.listdir(config.reports_directory):
+if test_result.startswith('report-'+test_id):
+with open(os.path.join(config.reports_directory, test_result)) as 
f:
+test_content = ''.join(f.readlines())
+test_results.append({'name': test_result,
+ 'content': test_content})
+return test_results
+
 class TestStatus(ORequestHandler):
 def get(self, test_id):
-pass
-
+try:
+test = copy.deepcopy(oonidApplication.director.netTests[test_id])
+test.pop('path')
+test['results'] = get_test_results(test_id)
+self.write(test)
+except KeyError:
+self.write({'error':
+'Test with such ID not found!'})
+
+config.read_config_file()
 oonidAPI = [
 (r"/status", Status),
 (r"/inputs", Inputs),
diff --git a/ooni/director.py b/ooni/director.py
index 1ef878c..bb02201 100644
--- a/ooni/director.py
+++ b/ooni/director.py
@@ -65,7 +65,6 @@ class Director(object):
 
 def __init__(self):
 self.activeNetTests = []
-self.netTests = self.getNetTests()
 
 self.measurementManager = MeasurementManager()
 self.measurementManager.director = self
@@ -114,6 +113,8 @@ class Director(object):
 
 @defer.inlineCallbacks
 def start(self):
+self.netTests = self.getNetTests()
+
 if config.privacy.includepcap:
 log.msg("Starting")
 if not config.reports.pcap:
@@ -207,15 +208,13 @@ class Director(object):
 self.allTestsDone = defer.Deferred()
 
 @defer.inlineCallbacks
-def startNetTest(self, _, net_test_loader, reporters):
+def startNetTest(self, net_test_loader, re

[tor-commits] [ooni-probe/master] Attach errback to dl

2013-06-19 Thread art
commit f79570c7d08bdf0cef8690d4e87041908e0bcbac
Author: Arturo Filastò 
Date:   Sat Mar 9 02:06:26 2013 +0100

Attach errback to dl
---
 ooni/nettest.py |6 +++---
 ooni/reporter.py|6 +-
 ooni/tasks.py   |1 -
 ooni/tests/test_reporter.py |   10 +++---
 4 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index dc72ce8..4e73164 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -10,7 +10,7 @@ from ooni.utils import log, checkForRoot, NotRootError, 
geodata
 from ooni import config
 from ooni import otime
 
-from ooni import errors as e
+from ooni import errors
 
 from inspect import getmembers
 from StringIO import StringIO
@@ -187,7 +187,7 @@ class NetTestLoader(object):
 log.msg("We will include some geo data in the report")
 try:
 client_geodata = geodata.IPToLocation(config.probe_ip)
-except e.GeoIPDataFilesNotFound:
+except errors.GeoIPDataFilesNotFound:
 log.err("Unable to find the geoip data files")
 client_geodata = {'city': None, 'countrycode': None, 'asn': 
None}
 
@@ -402,7 +402,7 @@ class NetTest(object):
 self.state.taskDone()
 
 if len(self.report.reporters) == 0:
-raise e.AllReportersFailed
+raise errors.AllReportersFailed
 
 return report_results
 
diff --git a/ooni/reporter.py b/ooni/reporter.py
index a7bd933..596a001 100644
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@ -398,6 +398,7 @@ class Report(object):
 log.debug("Reporters created: %s" % l)
 # Should we consume errors silently?
 dl = defer.DeferredList(l)
+dl.addErrback(self.checkRemainingReporters)
 return dl
 
 def failedOpeningReport(self, failure, reporter):
@@ -410,7 +411,9 @@ class Report(object):
 log.err("Failed to open %s reporter, giving up..." % reporter)
 log.err("Reporter %s failed, removing from report..." % reporter)
 self.reporters.remove(reporter)
-# Don't forward the exception unless there are no more reporters
+return
+
+def checkRemainingReporters(self, failure):
 if len(self.reporters) == 0:
 log.err("Removed last reporter %s" % reporter)
 raise NoMoreReporters
@@ -463,6 +466,7 @@ class Report(object):
 # to the deferredlist that checks to see if any reporters are left
 # and raise an exception if there are no remaining reporters
 dl = defer.DeferredList(l,fireOnOneErrback=True, consumeErrors=True)
+dl.addErrback(self.checkRemainingReporters)
 return dl
 
 def close(self, _):
diff --git a/ooni/tasks.py b/ooni/tasks.py
index c17a5c1..41cedc1 100644
--- a/ooni/tasks.py
+++ b/ooni/tasks.py
@@ -135,4 +135,3 @@ class ReportEntry(TaskWithTimeout):
 
 def run(self):
 return self.reporter.writeReportEntry(self.measurement)
-
diff --git a/ooni/tests/test_reporter.py b/ooni/tests/test_reporter.py
index d7ee907..ab2e8bf 100644
--- a/ooni/tests/test_reporter.py
+++ b/ooni/tests/test_reporter.py
@@ -4,7 +4,7 @@ from twisted.trial import unittest
 from ooni.reporter import Report, YAMLReporter, OONIBReporter, safe_dump
 from ooni.managers import ReportEntryManager, TaskManager
 from ooni.nettest import NetTest, NetTestState
-from ooni.errors import ReportNotCreated, ReportAlreadyClosed
+from ooni.errors import ReportNotCreated, ReportAlreadyClosed, NoMoreReporters
 
 from ooni.tasks import TaskWithTimeout
 from ooni.tests.mocks import MockOReporter, MockTaskManager
@@ -119,7 +119,7 @@ class TestReport(unittest.TestCase):
 d = report.write(MockMeasurement(MockNetTest()))
 def f(err):
 self.assertEquals(len(report.reporters),0)
-d.addErrback(f)
+d.addCallback(f)
 return d
 
 class TestYAMLReporter(unittest.TestCase):
@@ -138,7 +138,7 @@ class TestYAMLReporter(unittest.TestCase):
 def test_create_yaml_reporter(self):
 self.assertIsInstance(YAMLReporter(self.testDetails),
 YAMLReporter)
-
+
 def test_open_yaml_report_and_succeed(self):
 r = YAMLReporter(self.testDetails)
 r.createReport()
@@ -150,10 +150,6 @@ class TestYAMLReporter(unittest.TestCase):
 r.created.addCallback(f)
 return r.created
 
-#def test_open_yaml_report_and_fail(self):
-##XXX: YAMLReporter does not handle failures of this type
-#pass
-
 def test_write_yaml_report_entry(self):
 r = YAMLReporter(self.testDetails)
 r.createReport()



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Rename ooniprobe to ooni.

2013-06-19 Thread art
commit 033764eeef9b4f27df4512e447638447ff8fc293
Author: Arturo Filastò 
Date:   Mon Mar 18 15:38:17 2013 -0400

Rename ooniprobe to ooni.
---
 bin/ooniprobe |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/ooniprobe b/bin/ooniprobe
index ba537ab..695b137 100755
--- a/bin/ooniprobe
+++ b/bin/ooniprobe
@@ -8,10 +8,10 @@ sys.path[:] = map(os.path.abspath, sys.path)
 sys.path.insert(0, os.path.abspath(os.getcwd()))
 
 # This is a hack to overcome a bug in python
-from ooniprobe.utils.hacks import patched_reduce_ex
+from ooni.utils.hacks import patched_reduce_ex
 copy_reg._reduce_ex = patched_reduce_ex
 
 # from ooni.oonicli import run
 # run()
-from ooniprobe.oonicli import runWithDirector
+from ooni.oonicli import runWithDirector
 runWithDirector()



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Point to data directory in short-not-root deck

2013-06-19 Thread art
commit 673236cf5e872d13aff403260b70d711b2fa6ad1
Author: Arturo Filastò 
Date:   Tue Apr 30 09:18:07 2013 +0200

Point to data directory in short-not-root deck
---
 decks/short_no_root.deck |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/decks/short_no_root.deck b/decks/short_no_root.deck
index 18117f5..fbc8f7b 100644
--- a/decks/short_no_root.deck
+++ b/decks/short_no_root.deck
@@ -8,7 +8,7 @@
 reportfile: null
 resume: 0
 subargs: []
-test_file: nettests/manipulation/captiveportal.py
+test_file: data/nettests/manipulation/captiveportal.py
 testdeck: null
 - options:
 collector: null
@@ -20,7 +20,7 @@
 reportfile: null
 resume: 0
 subargs: [-f, example_inputs/url_lists_file.txt]
-test_file: nettests/blocking/http_requests.py
+test_file: data/nettests/blocking/http_requests.py
 testdeck: null
 - options:
 collector: null
@@ -32,7 +32,7 @@
 reportfile: null
 resume: 0
 subargs: [-f, example_inputs/tcpconnect_host_file.txt]
-test_file: nettests/blocking/tcpconnect.py
+test_file: data/nettests/blocking/tcpconnect.py
 testdeck: null
 - options:
 collector: null
@@ -44,7 +44,7 @@
 reportfile: null
 resume: 0
 subargs: [-f, example_inputs/http_host_file.txt, -T, 
example_inputs/dns_tamper_test_resolvers.txt]
-test_file: nettests/blocking/dnsconsistency.py
+test_file: data/nettests/blocking/dnsconsistency.py
 testdeck: null
 - options:
 collector: null
@@ -56,5 +56,5 @@
 reportfile: null
 resume: 0
 subargs: [-b, 'http://93.95.227.200']
-test_file: nettests/manipulation/http_header_field_manipulation.py
+test_file: data/nettests/manipulation/http_header_field_manipulation.py
 testdeck: null



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Set the default collector via the command line option

2013-06-19 Thread art
commit c714841fc7a818ee7fcbc2f46ab7ccba3f0ee40c
Author: Arturo Filastò 
Date:   Thu Feb 28 20:47:05 2013 +0100

Set the default collector via the command line option
---
 collector   |1 -
 ooni/oonicli.py |   11 +--
 2 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/collector b/collector
deleted file mode 100644
index 0b260a1..000
--- a/collector
+++ /dev/null
@@ -1 +0,0 @@
-httpo://nkvphnp3p6agi5qq.onion
diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index 93bf8bf..af06ad2 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -29,8 +29,7 @@ class Options(usage.Options):
 " files listed on the command line")
 
 optFlags = [["help", "h"],
-["resume", "r"],
-["no-default-reporter", "n"]]
+["resume", "r"]]
 
 optParameters = [["reportfile", "o", None, "report file name"],
  ["testdeck", "i", None,
@@ -154,14 +153,6 @@ def runWithDirector():
 log.msg("for example: ooniprobe -c 
httpo://nkvphnp3p6agi5qq.onion")
 sys.exit(1)
 
-# Select one of the baked-in reporters unless the user has 
requested otherwise
-if not global_options['no-default-reporter']:
-with open('collector') as f:
-reporter_url = random.choice(f.readlines())
-reporter_url = reporter_url.split('#')[0].strip()
-oonib_reporter = OONIBReporter(test_details, reporter_url)
-reporters.append(oonib_reporter)
-
 log.debug("adding callback for startNetTest")
 d.addCallback(director.startNetTest, net_test_loader, reporters)
 d.addCallback(shutdown)



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Remove now superfluos runner unittest

2013-06-19 Thread art
commit 54d7a959cfd218beae394f940408f430701cb5e3
Author: Arturo Filastò 
Date:   Wed Feb 27 17:11:31 2013 +0100

Remove now superfluos runner unittest
---
 tests/test_runner.py |   80 --
 1 file changed, 80 deletions(-)

diff --git a/tests/test_runner.py b/tests/test_runner.py
deleted file mode 100644
index 0b148e1..000
--- a/tests/test_runner.py
+++ /dev/null
@@ -1,80 +0,0 @@
-from twisted.trial import unittest
-
-
-from ooni.inputunit import InputUnit
-from ooni.nettest import NetTestCase
-from ooni.reporter import OReporter
-
-from ooni.runner import loadTestsAndOptions, runTestCasesWithInputUnit
-
-class DummyTestCase(NetTestCase):
-def test_a(self):
-self.report['bar'] = 'bar'
-def test_b(self):
-self.report['foo'] = 'foo'
-
-class DummyTestCasePP(DummyTestCase):
-def postProcessor(self, report):
-self.report['antani'] = 'sblinda'
-
-class DummyReporter(OReporter):
-dummy_report = []
-def createReport(self, options):
-pass
-
-def writeReportEntry(self, entry):
-self.dummy_report.append(entry)
-
-class TestRunner(unittest.TestCase):
-def test_load_test_and_options(self):
-input_unit = InputUnit([0,1,2,3,4])
-cmd_line_options = {}
-test_cases, options = loadTestsAndOptions([DummyTestCase],
-cmd_line_options)
-self.assertEqual(test_cases[0][1], 'test_b')
-self.assertEqual(test_cases[1][1], 'test_a')
-
-def test_run_testcase_with_input_unit(self):
-def done(result):
-report = oreporter.dummy_report
-self.assertEqual(len(report), 10*2)
-# XXX debug why this is failing
-# for idx, entry in enumerate(oreporter.dummy_report):
-# if idx % 2 == 0:
-# self.assertEqual(entry['report']['foo'], 'foo')
-# else:
-# self.assertEqual(entry['report']['bar'], 'bar')
-
-input_unit = InputUnit([0,1,2,3,4])
-cmd_line_options = {'collector': None}
-
-oreporter = DummyReporter(cmd_line_options)
-oreporter.dummy_report = []
-
-test_cases, options = loadTestsAndOptions([DummyTestCase],
-cmd_line_options)
-
-d = runTestCasesWithInputUnit(test_cases, input_unit, oreporter, 
oreporter)
-d.addBoth(done)
-return d
-
-def test_with_post_processing(self):
-def done(result):
-report = oreporter.dummy_report
-self.assertEqual(len(report), 6)
-for entry in report:
-if entry['test_name'] == 'summary':
-self.assertEqual(entry['report'], {'antani': 'sblinda'})
-
-input_unit = InputUnit([None])
-cmd_line_options = {'collector': None}
-
-oreporter = DummyReporter(cmd_line_options)
-oreporter.dummy_report = []
-
-test_cases, options = loadTestsAndOptions([DummyTestCasePP],
-cmd_line_options)
-
-d = runTestCasesWithInputUnit(test_cases, input_unit, oreporter, 
oreporter)
-d.addBoth(done)
-return d



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix so that parsing of test decks works properly

2013-06-19 Thread art
commit 49c442b48ac72420338ede93b2601a74c0f028f5
Author: Arturo Filastò 
Date:   Thu Feb 28 21:05:26 2013 +0100

Fix so that parsing of test decks works properly
---
 ooni/oonicli.py |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index af06ad2..06aa20c 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -106,8 +106,8 @@ def runWithDirector():
 if global_options['testdeck']:
 test_deck = yaml.safe_load(open(global_options['testdeck']))
 for test in test_deck:
-test_list.append(NetTestLoader(test['options'],
-   
test_file=global_options['test_file']))
+test_list.append(NetTestLoader(test['options']['subargs'],
+   
test_file=test['options']['test_file']))
 else:
 log.debug("No test deck detected")
 test_list.append(NetTestLoader(global_options['subargs'],



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Refactoring of NetTestLoader

2013-06-19 Thread art
commit 8bead060681d86cdfa43f35b1b57567e51816aa6
Author: Arturo Filastò 
Date:   Wed Feb 27 17:05:39 2013 +0100

Refactoring of NetTestLoader

* Make it clear that calling one of those methods can be extremely dangerous
* Kill a bug spotted thanks to unittesting
---
 ooni/nettest.py |   86 +--
 1 file changed, 46 insertions(+), 40 deletions(-)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index 6273d34..6323989 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -23,7 +23,10 @@ class NetTestLoader(object):
 
 def __init__(self, options):
 self.options = options
-self.testCases = self.loadNetTest(options['test'])
+if 'test_file' in options:
+self.loadNetTestFile(options['test_file'])
+elif 'test_string' in options:
+self.loadNetTestString(options['test_string'])
 
 @property
 def testDetails(self):
@@ -109,7 +112,45 @@ class NetTestLoader(object):
 assert usage_options == test_class.usageOptions
 return usage_options
 
-def loadNetTest(self, net_test_file):
+def loadNetTestString(self, net_test_string):
+"""
+Load NetTest from a string.
+WARNING input to this function *MUST* be sanitized and *NEVER* be
+untrusted.
+Failure to do so will result in code exec.
+
+net_test_string:
+
+a string that contains the net test to be run.
+"""
+net_test_file_object = StringIO(net_test_string)
+
+ns = {}
+test_cases = []
+exec net_test_file_object.read() in ns
+for item in ns.itervalues():
+test_cases.extend(self._get_test_methods(item))
+
+if not test_cases:
+raise NoTestCasesFound
+
+self.setupTestCases(test_cases)
+
+def loadNetTestFile(self, net_test_file):
+"""
+Load NetTest from a file.
+"""
+test_cases = []
+module = filenameToModule(net_test_file)
+for __, item in getmembers(module):
+test_cases.extend(self._get_test_methods(item))
+
+if not test_cases:
+raise NoTestCasesFound
+
+self.setupTestCases(test_cases)
+
+def setupTestCases(self, test_cases):
 """
 Creates all the necessary test_cases (a list of tuples containing the
 NetTestCase (test_class, test_method))
@@ -130,25 +171,10 @@ class NetTestLoader(object):
 is either a file path or a file like object that will be used to
 generate the test_cases.
 """
-test_cases = None
-try:
-if os.path.isfile(net_test_file):
-test_cases = self._loadNetTestFile(net_test_file)
-else:
-net_test_file = StringIO(net_test_file)
-raise TypeError("not a file path")
-
-except TypeError:
-if hasattr(net_test_file, 'read'):
-test_cases = self._loadNetTestFromFileObject(net_test_file)
-
-if not test_cases:
-raise NoTestCasesFound
-
 test_class, _ = test_cases[0]
 self.testVersion = test_class.version
 self.testName = test_class.name.lower().replace(' ','_')
-return test_cases
+self.testCases = test_cases
 
 def checkOptions(self):
 """
@@ -160,7 +186,8 @@ class NetTestLoader(object):
 
 for klass in test_classes:
 options = self.usageOptions()
-options.parseOptions(self.options['subargs'])
+options.parseOptions(self.options)
+
 if options:
 klass.localOptions = options
 
@@ -175,27 +202,6 @@ class NetTestLoader(object):
 inputs = [None]
 klass.inputs = inputs
 
-def _loadNetTestFromFileObject(self, net_test_string):
-"""
-Load NetTest from a string
-"""
-ns = {}
-test_cases = []
-exec net_test_string.read() in ns
-for item in ns.itervalues():
-test_cases.extend(self._get_test_methods(item))
-return test_cases
-
-def _loadNetTestFile(self, net_test_file):
-"""
-Load NetTest from a file
-"""
-test_cases = []
-module = filenameToModule(net_test_file)
-for __, item in getmembers(module):
-test_cases.extend(self._get_test_methods(item))
-return test_cases
-
 def _get_test_methods(self, item):
 """
 Look for test_ methods in subclasses of NetTestCase



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Raise NoMoreReporters exception on failure

2013-06-19 Thread art
commit 71d8151930c287c4b0e7f17940cb2954ac171f83
Author: Arturo Filastò 
Date:   Wed Mar 6 15:24:56 2013 +0100

Raise NoMoreReporters exception on failure
---
 ooni/errors.py   |4 +++-
 ooni/reporter.py |3 +--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/ooni/errors.py b/ooni/errors.py
index 85f39ab..ca2211a 100644
--- a/ooni/errors.py
+++ b/ooni/errors.py
@@ -129,10 +129,12 @@ class AllReportersFailed(Exception):
 class GeoIPDataFilesNotFound(Exception):
 pass
 
-
 class ReportNotCreated(Exception):
 pass
 
 class ReportAlreadyClosed(Exception):
 pass
 
+class NoMoreReporters(Exception):
+pass
+
diff --git a/ooni/reporter.py b/ooni/reporter.py
index 594c6b8..84dad2f 100644
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@ -413,8 +413,7 @@ class Report(object):
 # Don't forward the exception unless there are no more reporters
 if len(self.reporters) == 0:
 log.err("Removed last reporter %s" % reporter)
-failure.reporter = reporter
-return failure
+raise NoMoreReporters
 
 def write(self, measurement):
 """



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Update test decks with the proper key

2013-06-19 Thread art
commit 74d61678afc2804796c844f099c6d7c84766a857
Author: Arturo Filastò 
Date:   Thu Feb 28 20:48:47 2013 +0100

Update test decks with the proper key
---
 decks/before_i_commit.testdeck |8 
 decks/short_no_root.deck   |   10 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/decks/before_i_commit.testdeck b/decks/before_i_commit.testdeck
index f177a64..a9e08d8 100644
--- a/decks/before_i_commit.testdeck
+++ b/decks/before_i_commit.testdeck
@@ -5,7 +5,7 @@
 pcapfile: null
 reportfile: reports/captive_portal_test.yamloo
 subargs: []
-test: nettests/manipulation/captiveportal.py
+test_file: nettests/manipulation/captiveportal.py
 - options:
 collector: null
 help: 0
@@ -13,7 +13,7 @@
 pcapfile: null
 reportfile: reports/dns_tamper_test.yamloo
 subargs: [-T, example_inputs/dns_tamper_test_resolvers.txt, -f, 
example_inputs/dns_tamper_file.txt]
-test: nettests/blocking/dnsconsistency.py
+test_file: nettests/blocking/dnsconsistency.py
 - options:
 collector: null
 help: 0
@@ -21,7 +21,7 @@
 pcapfile: null
 reportfile: reports/http_host.yamloo
 subargs: [-b, 'http://93.95.227.200', -c, 'http://nkvphnp3p6agi5qq.onion', 
-f, example_inputs/http_host_file.txt]
-test: nettests/manipulation/http_host.py
+test_file: nettests/manipulation/http_host.py
 - options:
 collector: null
 help: 0
@@ -29,4 +29,4 @@
 pcapfile: null
 reportfile: reports/header_field_manipulation.yamloo
 subargs: [-b, 'http://93.95.227.200']
-test: nettests/manipulation/http_header_field_manipulation.py
+test_file: nettests/manipulation/http_header_field_manipulation.py
diff --git a/decks/short_no_root.deck b/decks/short_no_root.deck
index afb7b75..18117f5 100644
--- a/decks/short_no_root.deck
+++ b/decks/short_no_root.deck
@@ -8,7 +8,7 @@
 reportfile: null
 resume: 0
 subargs: []
-test: nettests/manipulation/captiveportal.py
+test_file: nettests/manipulation/captiveportal.py
 testdeck: null
 - options:
 collector: null
@@ -20,7 +20,7 @@
 reportfile: null
 resume: 0
 subargs: [-f, example_inputs/url_lists_file.txt]
-test: nettests/blocking/http_requests.py
+test_file: nettests/blocking/http_requests.py
 testdeck: null
 - options:
 collector: null
@@ -32,7 +32,7 @@
 reportfile: null
 resume: 0
 subargs: [-f, example_inputs/tcpconnect_host_file.txt]
-test: nettests/blocking/tcpconnect.py
+test_file: nettests/blocking/tcpconnect.py
 testdeck: null
 - options:
 collector: null
@@ -44,7 +44,7 @@
 reportfile: null
 resume: 0
 subargs: [-f, example_inputs/http_host_file.txt, -T, 
example_inputs/dns_tamper_test_resolvers.txt]
-test: nettests/blocking/dnsconsistency.py
+test_file: nettests/blocking/dnsconsistency.py
 testdeck: null
 - options:
 collector: null
@@ -56,5 +56,5 @@
 reportfile: null
 resume: 0
 subargs: [-b, 'http://93.95.227.200']
-test: nettests/manipulation/http_header_field_manipulation.py
+test_file: nettests/manipulation/http_header_field_manipulation.py
 testdeck: null



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'master' into task_manager

2013-06-19 Thread art
commit d3ab36b744b6e8e9862fd14ffae586d1b1a8e32f
Merge: 1710ca5 6f16d8c
Author: Arturo Filastò 
Date:   Wed Feb 27 16:36:44 2013 +0100

Merge branch 'master' into task_manager

* master:
  Order matters for little ol pip

 requirements.txt |   11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Change how we pass arguments to the nettest loader

2013-06-19 Thread art
commit 64715a714170b9175d07ea9420ef8b3dcf177c83
Author: Arturo Filastò 
Date:   Wed Feb 27 18:11:30 2013 +0100

Change how we pass arguments to the nettest loader

* Explicit the passing of the nettest file argument
---
 ooni/errors.py  |4 
 ooni/nettest.py |   12 ++--
 ooni/oonicli.py |6 --
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/ooni/errors.py b/ooni/errors.py
index 2023dbf..a194b96 100644
--- a/ooni/errors.py
+++ b/ooni/errors.py
@@ -126,3 +126,7 @@ class InvalidOONIBCollectorAddress(Exception):
 class AllReportersFailed(Exception):
 pass
 
+class GeoIPDataFilesNotFound(Exception):
+pass
+
+
diff --git a/ooni/nettest.py b/ooni/nettest.py
index 6323989..0b3e69c 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -10,7 +10,7 @@ from ooni.utils import log, checkForRoot, NotRootError, 
geodata
 from ooni import config
 from ooni import otime
 
-from ooni.errors import AllReportersFailed
+from ooni import errors as e
 
 from inspect import getmembers
 from StringIO import StringIO
@@ -21,12 +21,12 @@ class NoTestCasesFound(Exception):
 class NetTestLoader(object):
 method_prefix = 'test'
 
-def __init__(self, options):
+def __init__(self, options, test_file=None, test_string=None):
 self.options = options
-if 'test_file' in options:
-self.loadNetTestFile(options['test_file'])
-elif 'test_string' in options:
-self.loadNetTestString(options['test_string'])
+if test_file:
+self.loadNetTestFile(test_file)
+elif test_string:
+self.loadNetTestString(test_string)
 
 @property
 def testDetails(self):
diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index 243b90c..73d7709 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -107,10 +107,12 @@ def runWithDirector():
 if global_options['testdeck']:
 test_deck = yaml.safe_load(open(global_options['testdeck']))
 for test in test_deck:
-test_list.append(NetTestLoader(test['options']))
+test_list.append(NetTestLoader(test['options'],
+   
test_file=global_options['test_file']))
 else:
 log.debug("No test deck detected")
-test_list.append(NetTestLoader(global_options))
+test_list.append(NetTestLoader(global_options['subargs'],
+   test_file=global_options['test_file']))
 
 # check each test's usageOptions
 for net_test_loader in test_list:



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'master' into feature/task_manager

2013-06-19 Thread art
commit 9b00fa993757df5081c042f1deda32f907d235f9
Merge: 46c4db1 a62e36d
Author: Arturo Filastò 
Date:   Tue Mar 5 16:33:01 2013 +0100

Merge branch 'master' into feature/task_manager

* master:
  Add changelog for ooni
  Update ooniprobe.conf.sample
  Add tests for YAML reporter
  Open YAML report in createReport
  Update tests to reflect change of syntax in NetTestLoader
  Update NetTest tests to reflect change of syntax

Conflicts:
ooni/errors.py
tests/test_director.py
tests/test_nettest.py

 ChangeLog.md   |  253 
 ooni/errors.py |6 ++
 ooni/reporter.py   |   12 ++-
 ooniprobe.conf.sample  |4 +-
 tests/test_managers.py |2 +-
 tests/test_reporter.py |  115 +-
 6 files changed, 362 insertions(+), 30 deletions(-)

diff --cc ooni/errors.py
index a194b96,36a042f..85f39ab
--- a/ooni/errors.py
+++ b/ooni/errors.py
@@@ -126,7 -126,9 +126,13 @@@ class InvalidOONIBCollectorAddress(Exce
  class AllReportersFailed(Exception):
  pass
  
 +class GeoIPDataFilesNotFound(Exception):
 +pass
 +
 +
+ class ReportNotCreated(Exception):
+ pass
+ 
+ class ReportAlreadyClosed(Exception):
+ pass
+ 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix typo in test deck before_i_commit

2013-06-19 Thread art
commit 18266c634c0538585986c0d31dd929ba83a22203
Author: Arturo Filastò 
Date:   Fri Mar 1 11:31:42 2013 +0100

Fix typo in test deck before_i_commit
---
 decks/before_i_commit.testdeck |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/decks/before_i_commit.testdeck b/decks/before_i_commit.testdeck
index a9e08d8..d1b4062 100644
--- a/decks/before_i_commit.testdeck
+++ b/decks/before_i_commit.testdeck
@@ -20,7 +20,7 @@
 logfile: reports/before_i_commit.log
 pcapfile: null
 reportfile: reports/http_host.yamloo
-subargs: [-b, 'http://93.95.227.200', -c, 'http://nkvphnp3p6agi5qq.onion', 
-f, example_inputs/http_host_file.txt]
+subargs: [-b, 'http://93.95.227.200', -f, 
example_inputs/http_host_file.txt]
 test_file: nettests/manipulation/http_host.py
 - options:
 collector: null



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Rename private option to test_file to separate it from test string.

2013-06-19 Thread art
commit d1f41883c8d0187e6360b2a2b9075f0cb7eb7a37
Author: Arturo Filastò 
Date:   Wed Feb 27 17:08:43 2013 +0100

Rename private option to test_file to separate it from test string.
---
 ooni/oonicli.py |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index 2fd4688..243b90c 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -68,7 +68,7 @@ class Options(usage.Options):
 if self['testdeck']:
 return
 try:
-self['test'] = args[0]
+self['test_file'] = args[0]
 self['subargs'] = args[1:]
 except:
 raise usage.UsageError("No test filename specified!")



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Add more debugging to managers

2013-06-19 Thread art
commit 708a3a8a858ef3d3a6ae15d4700b3362f02d9722
Author: Arturo Filastò 
Date:   Thu Feb 28 20:46:14 2013 +0100

Add more debugging to managers
---
 ooni/managers.py |   12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/ooni/managers.py b/ooni/managers.py
index 011e3b0..17b430d 100644
--- a/ooni/managers.py
+++ b/ooni/managers.py
@@ -1,5 +1,6 @@
 import itertools
 from twisted.internet import defer
+from ooni.utils import log
 
 def makeIterable(item):
 """
@@ -28,6 +29,9 @@ class TaskManager(object):
 The has failed to complete, we append it to the end of the task chain
 to be re-run once all the currently scheduled tasks have run.
 """
+log.err("Task %s has failed" % task)
+log.exception(failure)
+
 self._active_tasks.remove(task)
 self.failures.append((failure, task))
 
@@ -93,6 +97,8 @@ class TaskManager(object):
 Takes as argument a single task or a task iterable and appends it to 
the task
 generator queue.
 """
+log.debug("Starting this task %s" % repr(task_or_task_iterator))
+
 iterable = makeIterable(task_or_task_iterator)
 
 self._tasks = itertools.chain(self._tasks, iterable)
@@ -138,7 +144,8 @@ class MeasurementManager(TaskManager):
 concurrency = 10
 
 def succeeded(self, result, measurement):
-pass
+log.debug("Successfully performed measurement %s" % measurement)
+log.debug(result)
 
 def failed(self, failure, measurement):
 pass
@@ -149,7 +156,8 @@ class ReportEntryManager(TaskManager):
 concurrency = 20
 
 def succeeded(self, result, task):
-pass
+log.debug("Successfully performed report %s" % task)
+log.debug(result)
 
 def failed(self, failure, task):
 pass



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix director unittest

2013-06-19 Thread art
commit 1ac4e4fd8f13b8e358034d3b69174fdc19b02543
Author: Arturo Filastò 
Date:   Wed Feb 27 17:11:22 2013 +0100

Fix director unittest
---
 tests/test_director.py |8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tests/test_director.py b/tests/test_director.py
index 484cb21..a9dfbe8 100644
--- a/tests/test_director.py
+++ b/tests/test_director.py
@@ -42,9 +42,11 @@ class TestDirector(unittest.TestCase):
 pass
 
 def test_start_net_test(self):
-net_test_loader = NetTestLoader(net_test_string, dummyArgs)
-net_test_loader.checkOptions()
-d = self.director.startNetTest('', net_test_loader, self.reporters)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestString(net_test_string)
+
+ntl.checkOptions()
+d = self.director.startNetTest('', ntl, self.reporters)
 
 @d.addCallback
 def done(result):



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Merge branch 'master' into feature/task_manager

2013-06-19 Thread art
commit 46c4db194d2e0cda648a500291f0d605dd445e96
Merge: 18266c6 997a747
Author: Arturo Filastò 
Date:   Tue Mar 5 16:21:24 2013 +0100

Merge branch 'master' into feature/task_manager

* master:
  Remove unneeded commented out line
  Flatten the reporter keys
  Return something in txscapy
  Update before_i_commit script to make it work (cherry picked from commit 
9cdf5596c8f16cac819afdaf1b9b537b36f796a6)
  Refactor logic for importing scapy related functions
  Add sent packets to report and use startSending instead of sendPackets

Conflicts:
decks/before_i_commit.testdeck

 ooni/reporter.py  |   15 +---
 ooni/templates/scapyt.py  |6 ++---
 ooni/utils/net.py |2 +-
 ooni/utils/txscapy.py |   56 +
 scripts/example_parser.py |5 ++--
 5 files changed, 54 insertions(+), 30 deletions(-)

diff --cc ooni/reporter.py
index 69d4892,1f6c3e6..a0c9466
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@@ -147,19 -183,13 +147,16 @@@ class OReporter(object)
  else:
  test_input = test.input
  
- test_started = test._start_time
- test_runtime = time.time() - test_started
- 
- report = {'input': test_input,
- 'test_name': test_name,
- 'test_started': test_started,
- 'test_runtime': test_runtime,
- 'report': test_report}
- return defer.maybeDeferred(self.writeReportEntry, report)
+ test_report['input'] = test_input
+ test_report['test_name'] = test_name
+ test_report['test_started'] = test._start_time
+ test_report['test_runtime'] = time.time() - test._start_time
+ 
+ return defer.maybeDeferred(self.writeReportEntry, test_report)
  
 +class InvalidDestination(ReporterException):
 +pass
 +
  class YAMLReporter(OReporter):
  """
  These are useful functions for reporting to YAML format.



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/master] Fix unittests for nettest

2013-06-19 Thread art
commit 04d5fc5d157b7e5ac47230ee018fb382756f85dc
Author: Arturo Filastò 
Date:   Wed Feb 27 17:05:27 2013 +0100

Fix unittests for nettest
---
 tests/test_nettest.py |   62 +
 1 file changed, 37 insertions(+), 25 deletions(-)

diff --git a/tests/test_nettest.py b/tests/test_nettest.py
index 5645dbf..78240d5 100644
--- a/tests/test_nettest.py
+++ b/tests/test_nettest.py
@@ -61,7 +61,7 @@ class DummyTestCase(NetTestCase):
 self.report['foo'] = 'foo'
 """
 
-net_test_with_required_option = """
+net_test_string_with_required_option = """
 from twisted.python import usage
 from ooni.nettest import NetTestCase
 
@@ -124,8 +124,9 @@ class TestNetTest(unittest.TestCase):
 f.write(net_test_string)
 f.close()
 
-ntl = NetTestLoader(net_test_file,
-dummyArgs)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestFile(net_test_file)
+
 self.verifyMethods(ntl.testCases)
 os.unlink(net_test_file)
 
@@ -134,8 +135,9 @@ class TestNetTest(unittest.TestCase):
 Given a file like object verify that the net test cases are properly
 generated.
 """
-ntl = NetTestLoader(net_test_string,
-dummyArgs)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestString(net_test_string)
+
 self.verifyMethods(ntl.testCases)
 
 def test_load_net_test_from_StringIO(self):
@@ -143,13 +145,15 @@ class TestNetTest(unittest.TestCase):
 Given a file like object verify that the net test cases are properly
 generated.
 """
-ntl = NetTestLoader(StringIO(net_test_string),
-dummyArgs)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestString(net_test_string)
+
 self.verifyMethods(ntl.testCases)
 
 def test_load_with_option(self):
-ntl = NetTestLoader(StringIO(net_test_string),
-dummyArgs)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestString(net_test_string)
+
 self.assertIsInstance(ntl, NetTestLoader)
 for test_klass, test_meth in ntl.testCases:
 for option in dummyOptions.keys():
@@ -157,27 +161,32 @@ class TestNetTest(unittest.TestCase):
 
 def test_load_with_invalid_option(self):
 try:
-ntl = NetTestLoader(StringIO(net_test_string), dummyInvalidArgs)
+ntl = NetTestLoader(dummyInvalidArgs)
+ntl.loadNetTestString(net_test_string)
+
 ntl.checkOptions()
 raise Exception
 except UsageError:
 pass
 
 def test_load_with_required_option(self):
-net_test = NetTestLoader(StringIO(net_test_with_required_option),
-dummyArgsWithRequiredOptions)
-self.assertIsInstance(net_test, NetTestLoader)
+ntl = NetTestLoader(dummyArgsWithRequiredOptions)
+ntl.loadNetTestString(net_test_string_with_required_option)
+
+self.assertIsInstance(ntl, NetTestLoader)
 
 def test_load_with_missing_required_option(self):
 try:
-net_test = NetTestLoader(StringIO(net_test_with_required_option),
-dummyArgs)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestString(net_test_string_with_required_option)
+
 except MissingRequiredOption:
 pass
 
 def test_net_test_inputs(self):
-ntl = NetTestLoader(StringIO(net_test_string_with_file),
-dummyArgsWithFile)
+ntl = NetTestLoader(dummyArgsWithFile)
+ntl.loadNetTestString(net_test_string_with_file)
+
 ntl.checkOptions()
 
 # XXX: if you use the same test_class twice you will have consumed all
@@ -189,17 +198,18 @@ class TestNetTest(unittest.TestCase):
 self.assertEqual(len(list(test_class.inputs)), 10)
 
 def test_setup_local_options_in_test_cases(self):
-ntl = NetTestLoader(StringIO(net_test_string),
-dummyArgs)
+ntl = NetTestLoader(dummyArgs)
+ntl.loadNetTestString(net_test_string)
+
 ntl.checkOptions()
 
 for test_class, test_method in ntl.testCases:
 self.assertEqual(test_class.localOptions, dummyOptions)
 
 def test_generate_measurements_size(self):
+ntl = NetTestLoader(dummyArgsWithFile)
+ntl.loadNetTestString(net_test_string_with_file)
 
-ntl = NetTestLoader(StringIO(net_test_string_with_file),
-dummyArgsWithFile)
 ntl.checkOptions()
 net_test = NetTest(ntl, None)
 
@@ -207,8 +217,9 @@ class TestNetTest(unittest.TestCase):
 self.assertEqual(len(measurements), 20)
 
 def test_net_test_completed_callback(self):
-ntl = NetTestLoader(StringIO(net_test_string_with_file),
-dummyArgsWithFile)
+ntl = NetTestLoader(dummyArgsWithFile)
+ntl.loadNetTestString(net_test_string_with_file)
+
 ntl.checkOptions()
 director = Director()

[tor-commits] [ooni-probe/master] Make the starting of tests more robust.

2013-06-19 Thread art
commit 5abfe2a902b60062f08feb22ef5a47268e51c8b1
Author: Arturo Filastò 
Date:   Wed Feb 27 18:12:13 2013 +0100

Make the starting of tests more robust.
---
 ooni/nettest.py   |   11 +++
 ooni/oonicli.py   |   18 +-
 ooni/utils/geodata.py |7 +++
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/ooni/nettest.py b/ooni/nettest.py
index 0b3e69c..1fe19f1 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -38,7 +38,11 @@ class NetTestLoader(object):
 config.privacy.includecountry or \
 config.privacy.includecity):
 log.msg("We will include some geo data in the report")
-client_geodata = geodata.IPToLocation(config.probe_ip)
+try:
+client_geodata = geodata.IPToLocation(config.probe_ip)
+except e.GeoIPDataFilesNotFound:
+log.err("Unable to find the geoip data files")
+client_geodata = {'city': None, 'countrycode': None, 'asn': 
None}
 
 if config.privacy.includeip:
 client_geodata['ip'] = config.probe_ip
@@ -51,8 +55,7 @@ class NetTestLoader(object):
 client_geodata['asn'] = 'AS0'
 elif 'asn' in client_geodata:
 # XXX this regexp should probably go inside of geodata
-client_geodata['asn'] = \
-re.search('AS\d+', client_geodata['asn']).group(0)
+client_geodata['asn'] = client_geodata['asn']
 log.msg("Your AS number is: %s" % client_geodata['asn'])
 else:
 client_geodata['asn'] = None
@@ -306,7 +309,7 @@ class NetTest(object):
 self.state.taskDone()
 
 if len(self.report.reporters) == 0:
-raise AllReportersFailed
+raise e.AllReportersFailed
 
 return report_results
 
diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index 73d7709..93bf8bf 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -35,8 +35,8 @@ class Options(usage.Options):
 optParameters = [["reportfile", "o", None, "report file name"],
  ["testdeck", "i", None,
  "Specify as input a test deck: a yaml file containig 
the tests to run an their arguments"],
- ["collector", "c", None,
- "Address of the collector of test results. (example: 
http://127.0.0.1:)"],
+ ["collector", "c", 'httpo://nkvphnp3p6agi5qq.onion',
+ "Address of the collector of test results. default: 
httpo://nkvphnp3p6agi5qq.onion"],
  ["logfile", "l", None, "log file name"],
  ["pcapfile", "O", None, "pcap file name"],
  ["parallelism", "p", "10", "input parallelism"],
@@ -130,15 +130,22 @@ def runWithDirector():
 director = Director()
 d = director.start()
 
+def director_startup_failed(failure):
+log.err("Failed to start the director")
+log.exception(failure)
+reactor.stop()
+
 # Wait until director has started up (including bootstrapping Tor) before 
adding tess
 def post_director_start(_):
 for net_test_loader in test_list:
-yaml_reporter = YAMLReporter(net_test_loader.testDetails)
+test_details = net_test_loader.testDetails
+
+yaml_reporter = YAMLReporter(test_details)
 reporters = [yaml_reporter]
 
 if global_options['collector']:
 try:
-oonib_reporter = OONIBReporter(net_test_loader.testDetails,
+oonib_reporter = OONIBReporter(test_details,
 global_options['collector'])
 reporters.append(oonib_reporter)
 except InvalidOONIBCollectorAddress:
@@ -152,7 +159,7 @@ def runWithDirector():
 with open('collector') as f:
 reporter_url = random.choice(f.readlines())
 reporter_url = reporter_url.split('#')[0].strip()
-oonib_reporter = 
OONIBReporter(net_test_loader.testDetails, reporter_url)
+oonib_reporter = OONIBReporter(test_details, reporter_url)
 reporters.append(oonib_reporter)
 
 log.debug("adding callback for startNetTest")
@@ -160,4 +167,5 @@ def runWithDirector():
 d.addCallback(shutdown)
 
 d.addCallback(post_director_start)
+d.addErrback(director_startup_failed)
 reactor.run()
diff --git a/ooni/utils/geodata.py b/ooni/utils/geodata.py
index d9883ba..56ce05c 100644
--- a/ooni/utils/geodata.py
+++ b/ooni/utils/geodata.py
@@ -6,15 +6,13 @@ from twisted.internet import reactor, defer, protocol
 
 from ooni.utils import log, net
 from ooni import config
+from ooni.errors import GeoIPDataFilesNotFound
 
 try:
 import pygeoip
 except ImportError:
 log.err("Unable to import pygeoip. We will not be able to run geo IP 
related measurements")
 
-class Geo

[tor-commits] [ooni-probe/develop] Add support for closing a report

2013-06-19 Thread isis
commit 5ead2b8c42daea738d37d87571c5e0cbd37027c7
Author: Arturo Filastò 
Date:   Fri Jun 7 00:31:23 2013 +0200

Add support for closing a report
---
 ooni/reporter.py |4 
 1 file changed, 4 insertions(+)

diff --git a/ooni/reporter.py b/ooni/reporter.py
index 85df36e..b80a2a3 100644
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@ -353,6 +353,10 @@ class OONIBReporter(OReporter):
 self.backendVersion = parsed_response['backend_version']
 log.debug("Created report with id %s" % parsed_response['report_id'])
 
+def finish(self):
+url = self.collectorAddress + '/report/' + self.reportID + '/close'
+response = yield self.agent.request("POST", url)
+
 class ReportClosed(Exception):
 pass
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/develop] Merge pull request #82 from aagbsn/feature/add-obfsproxy-bridges

2013-06-19 Thread isis
commit 4164537e9917e77670968eedde0e18a13d1eb1f7
Merge: 05346a3 9b25111
Author: Arturo Filastò 
Date:   Thu Jun 13 05:28:54 2013 -0700

Merge pull request #82 from aagbsn/feature/add-obfsproxy-bridges

Add bridge and obfsproxy support to director when starting Tor

 ooni/director.py  |   16 
 ooniprobe.conf.sample |1 +
 2 files changed, 17 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/develop] Use the full fingerprint as the download specifier.

2013-06-19 Thread isis
commit 7978b6156078a6e259529d0b23cf6a1931ad356b
Author: Isis Lovecruft 
Date:   Thu Jun 6 13:54:58 2013 +

Use the full fingerprint as the download specifier.
---
 Vagrantfile |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Vagrantfile b/Vagrantfile
index 52107e8..ed3250c 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -125,7 +125,7 @@ echo "Installing Tor..."
 
 echo "deb http://deb.torproject.org/torproject.org precise main" >> 
/etc/apt/source.list
 
-gpg --keyserver keys.gnupg.net --recv 886DDD89
+gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
 gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
 
 apt-get update



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [ooni-probe/develop] Add support for closing reports in ooni-probe

2013-06-19 Thread isis
commit d98ea4c4fee6699b8be8462e71503e98be2e24d3
Author: Arturo Filastò 
Date:   Fri Jun 7 22:13:20 2013 +0200

Add support for closing reports in ooni-probe
---
 ooni/director.py |9 +
 ooni/reporter.py |9 +
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/ooni/director.py b/ooni/director.py
index 809eae4..00ec039 100644
--- a/ooni/director.py
+++ b/ooni/director.py
@@ -171,7 +171,7 @@ class Director(object):
 """
 pass
 
-def netTestDone(self, result, net_test):
+def netTestDone(self, net_test):
 self.activeNetTests.remove(net_test)
 if len(self.activeNetTests) == 0:
 self.allTestsDone.callback(None)
@@ -206,10 +206,11 @@ class Director(object):
 
 self.activeNetTests.append(net_test)
 
-net_test.done.addBoth(report.close)
-net_test.done.addBoth(self.netTestDone, net_test)
-
 yield net_test.done
+yield report.close()
+
+self.netTestDone(net_test)
+
 
 def startSniffing(self):
 """ Start sniffing with Scapy. Exits if required privileges (root) are 
not
diff --git a/ooni/reporter.py b/ooni/reporter.py
index b80a2a3..38519f7 100644
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@ -242,8 +242,7 @@ class OONIBReporter(OReporter):
 if the oonib reporter is not valid.
 """
 regexp = '^(http|httpo):\/\/[a-zA-Z0-9\-\.]+(:\d+)?$'
-if not re.match(regexp, self.collectorAddress) or \
-len(self.collectorAddress) < 30:
+if not re.match(regexp, self.collectorAddress):
 raise errors.InvalidOONIBCollectorAddress
 
 @defer.inlineCallbacks
@@ -353,9 +352,11 @@ class OONIBReporter(OReporter):
 self.backendVersion = parsed_response['backend_version']
 log.debug("Created report with id %s" % parsed_response['report_id'])
 
+@defer.inlineCallbacks
 def finish(self):
 url = self.collectorAddress + '/report/' + self.reportID + '/close'
-response = yield self.agent.request("POST", url)
+log.debug("Closing the report %s" % url)
+response = yield self.agent.request("POST", str(url))
 
 class ReportClosed(Exception):
 pass
@@ -464,7 +465,7 @@ class Report(object):
 raise errors.NoMoreReporters
 return
 
-def close(self, _):
+def close(self):
 """
 Close the report by calling it's finish method.
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


  1   2   >