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

2013-12-08 Thread translation
commit c95593e900a745cc911c9fe274317731b758f6a4
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 13:15:53 2013 +

Update translations for https_everywhere
---
 fil/https-everywhere.dtd |   20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/fil/https-everywhere.dtd b/fil/https-everywhere.dtd
index 3401381..53e0c90 100644
--- a/fil/https-everywhere.dtd
+++ b/fil/https-everywhere.dtd
@@ -1,16 +1,16 @@
-!ENTITY https-everywhere.about.title About HTTPS Everywhere
+!ENTITY https-everywhere.about.title Tungkol sa HTTPS Everywhere
 !ENTITY https-everywhere.about.ext_name HTTPS Everywhere
-!ENTITY https-everywhere.about.ext_description Encrypt the Web! 
Automatically use HTTPS security on many sites.
+!ENTITY https-everywhere.about.ext_description I-encrypt ang Web! 
Awtomatikong gamitin ang HTTPS security sa maraming sites.
 !ENTITY https-everywhere.about.version Version
-!ENTITY https-everywhere.about.created_by Created by
+!ENTITY https-everywhere.about.created_by Ginawa ni/ng
 !ENTITY https-everywhere.about.librarians Ruleset Librarians
-!ENTITY https-everywhere.about.thanks Thanks to
-!ENTITY https-everywhere.about.contribute  If you like HTTPS Everywhere, you 
might consider
-!ENTITY https-everywhere.about.donate_tor Donating to Tor
-!ENTITY https-everywhere.about.tor_lang_code en
-!ENTITY https-everywhere.about.donate_eff Donating to EFF
+!ENTITY https-everywhere.about.thanks Salamat kay/sa
+!ENTITY https-everywhere.about.contribute  Kung nagustuhan mo ang HTTPS 
Everywhere, baka magustuhan mo rin ang
+!ENTITY https-everywhere.about.donate_tor Paano mag-donate sa Tor
+!ENTITY https-everywhere.about.tor_lang_code fil
+!ENTITY https-everywhere.about.donate_eff Paano mag-donate sa EFF
 
-!ENTITY https-everywhere.menu.about About HTTPS Everywhere
+!ENTITY https-everywhere.menu.about Tungkol sa HTTPS Everywhere
 !ENTITY https-everywhere.menu.observatory SSL Observatory Preferences
 !ENTITY https-everywhere.menu.globalEnable Enable HTTPS Everywhere
 !ENTITY https-everywhere.menu.globalDisable Disable HTTPS Everywhere
@@ -24,7 +24,7 @@
 !ENTITY https-everywhere.prefs.notes Notes
 !ENTITY https-everywhere.prefs.list_caption Which HTTPS redirection rules 
should apply?
 !ENTITY https-everywhere.prefs.enabled Enabled
-!ENTITY https-everywhere.prefs.ruleset_howto You can learn how to write your 
own rulesets (to add support for other web sites)
+!ENTITY https-everywhere.prefs.ruleset_howto Puwede kang matuto kung paano 
magsulat ng sarili mong rulesets (para magdagdag ng support para sa iba pang 
web sites)
 !ENTITY https-everywhere.prefs.here_link here
 !ENTITY https-everywhere.prefs.toggle Toggle
 !ENTITY https-everywhere.prefs.reset_default Reset to Default

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


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

2013-12-08 Thread translation
commit 56274640e34043c2443932bad1983ec9a5afc3bf
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 13:45:51 2013 +

Update translations for https_everywhere
---
 fil/https-everywhere.dtd |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/fil/https-everywhere.dtd b/fil/https-everywhere.dtd
index 53e0c90..5d640d5 100644
--- a/fil/https-everywhere.dtd
+++ b/fil/https-everywhere.dtd
@@ -25,18 +25,18 @@
 !ENTITY https-everywhere.prefs.list_caption Which HTTPS redirection rules 
should apply?
 !ENTITY https-everywhere.prefs.enabled Enabled
 !ENTITY https-everywhere.prefs.ruleset_howto Puwede kang matuto kung paano 
magsulat ng sarili mong rulesets (para magdagdag ng support para sa iba pang 
web sites)
-!ENTITY https-everywhere.prefs.here_link here
+!ENTITY https-everywhere.prefs.here_link dito
 !ENTITY https-everywhere.prefs.toggle Toggle
-!ENTITY https-everywhere.prefs.reset_default Reset to Default
-!ENTITY https-everywhere.prefs.view_xml_source View XML Source
+!ENTITY https-everywhere.prefs.reset_default Ibalik sa Default
+!ENTITY https-everywhere.prefs.view_xml_source Tingnan ang XML Source
 
 !ENTITY https-everywhere.source.downloading Downloading
 !ENTITY https-everywhere.source.filename Filename
-!ENTITY https-everywhere.source.unable_to_download Unable to download 
source.
+!ENTITY https-everywhere.source.unable_to_download Hindi ma-download ang 
source.
 
 !ENTITY https-everywhere.popup.title HTTPS Everywhere 4.0development.11 
notification
-!ENTITY https-everywhere.popup.paragraph1 Oops. You were using the stable 
version of HTTPS Everywhere, but we might have accidentally upgraded you to the 
development version in our last release.
-!ENTITY https-everywhere.popup.paragraph2 Would you like to go back to 
stable?
+!ENTITY https-everywhere.popup.paragraph1 Hala. Ginagamit mo dati ang stable 
version ng HTTPS Everywhere, pero maaaring hindi namin sinasadyang naibigay sa 
iyo ang development version noong huli naming release.
+!ENTITY https-everywhere.popup.paragraph2 Gusto mo bang bumalik sa stable?
 !ENTITY https-everywhere.popup.paragraph3 We'd love it if you continued 
using our development release and helped us make HTTPS Everywhere better! You 
might find there are a few more bugs here and there, which you can report to 
https-everywh...@eff.org. Sorry about the inconvenience, and thank you for 
using HTTPS Everywhere.
 !ENTITY https-everywhere.popup.keep Keep me on the development version
 !ENTITY https-everywhere.popup.revert Download the latest stable version

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


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

2013-12-08 Thread translation
commit 2318e26a190332c691abe6256d2a91a0a310ecf2
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 14:15:53 2013 +

Update translations for https_everywhere
---
 fil/https-everywhere.dtd|   10 +-
 fil/https-everywhere.properties |4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/fil/https-everywhere.dtd b/fil/https-everywhere.dtd
index 5d640d5..8aea913 100644
--- a/fil/https-everywhere.dtd
+++ b/fil/https-everywhere.dtd
@@ -18,11 +18,11 @@
 !ENTITY https-everywhere.prefs.title HTTPS Everywhere Preferences
 !ENTITY https-everywhere.prefs.enable_all Enable All
 !ENTITY https-everywhere.prefs.disable_all Disable All
-!ENTITY https-everywhere.prefs.reset_defaults Reset to Defaults
+!ENTITY https-everywhere.prefs.reset_defaults Ibalik sa Defaults
 !ENTITY https-everywhere.prefs.search Search
 !ENTITY https-everywhere.prefs.site Site
 !ENTITY https-everywhere.prefs.notes Notes
-!ENTITY https-everywhere.prefs.list_caption Which HTTPS redirection rules 
should apply?
+!ENTITY https-everywhere.prefs.list_caption Aling HTTPS redirection rules 
ang dapat gamitin?
 !ENTITY https-everywhere.prefs.enabled Enabled
 !ENTITY https-everywhere.prefs.ruleset_howto Puwede kang matuto kung paano 
magsulat ng sarili mong rulesets (para magdagdag ng support para sa iba pang 
web sites)
 !ENTITY https-everywhere.prefs.here_link dito
@@ -37,9 +37,9 @@
 !ENTITY https-everywhere.popup.title HTTPS Everywhere 4.0development.11 
notification
 !ENTITY https-everywhere.popup.paragraph1 Hala. Ginagamit mo dati ang stable 
version ng HTTPS Everywhere, pero maaaring hindi namin sinasadyang naibigay sa 
iyo ang development version noong huli naming release.
 !ENTITY https-everywhere.popup.paragraph2 Gusto mo bang bumalik sa stable?
-!ENTITY https-everywhere.popup.paragraph3 We'd love it if you continued 
using our development release and helped us make HTTPS Everywhere better! You 
might find there are a few more bugs here and there, which you can report to 
https-everywh...@eff.org. Sorry about the inconvenience, and thank you for 
using HTTPS Everywhere.
-!ENTITY https-everywhere.popup.keep Keep me on the development version
-!ENTITY https-everywhere.popup.revert Download the latest stable version
+!ENTITY https-everywhere.popup.paragraph3 Ikalulugod namin kung itutuloy mo 
ang paggamit sa aming development release at kung tutulungan mo kaming 
pagandahin ang HTTPS Everywhere! Maaari kang makakita ng ilan pang bugs dito na 
maaari mong iulat sa https-everywh...@eff.org. Humihingi kami ng paumanhin sa 
abala at nagpapasalamat kami sa iyong paggamit ng HTTPS Everywhere.
+!ENTITY https-everywhere.popup.keep Sige, gusto ko sa development version
+!ENTITY https-everywhere.popup.revert I-download ang pinakabagong stable 
version
 
 !ENTITY https-everywhere.ruleset-tests.status_title HTTPS Everywhere Ruleset 
Tests
 !ENTITY https-everywhere.ruleset-tests.status_cancel_button Cancel
diff --git a/fil/https-everywhere.properties b/fil/https-everywhere.properties
index 21feda9..fab8a08 100644
--- a/fil/https-everywhere.properties
+++ b/fil/https-everywhere.properties
@@ -1,8 +1,8 @@
 # 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.menu.noRules = (Walang Rules para sa Page na Ito)
+https-everywhere.menu.unknownRules = (Hindi Alam ang Rules para sa Page na Ito)
 # 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.
 # https-everywhere.migration.notification0 = In order to implement a crucial 
fix, this update resets your HTTPS Everywhere rule preferences to their default 
values.
 # https-everywhere.menu.ruleset-tests = Run HTTPS Everywhere Ruleset Tests

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


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

2013-12-08 Thread translation
commit 49bb26a83548fee5db742be6522034ac7d79b935
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 14:45:52 2013 +

Update translations for https_everywhere
---
 fil/ssl-observatory.dtd |   75 ++-
 1 file changed, 42 insertions(+), 33 deletions(-)

diff --git a/fil/ssl-observatory.dtd b/fil/ssl-observatory.dtd
index d832b69..2469e1f 100644
--- a/fil/ssl-observatory.dtd
+++ b/fil/ssl-observatory.dtd
@@ -1,9 +1,11 @@
 !-- Observatory popup window --
-!ENTITY ssl-observatory.popup.details 
-!ENTITY ssl-observatory.popup.later 
-!ENTITY ssl-observatory.popup.no 
+!ENTITY ssl-observatory.popup.details Mga Detalye at Impormasyon sa Privacy
+!ENTITY ssl-observatory.popup.later Ask Me Later
+!ENTITY ssl-observatory.popup.no Wala
 
-!ENTITY ssl-observatory.popup.text 
+!ENTITY ssl-observatory.popup.text HTTPS Everywhere can detect attacks
+against your browser by sending the certificates you receive to the
+Observatory.  Turn this on?
 
 !--!ENTITY ssl-observatory.popup.text 
 EFF's SSL Observatory can detect attacks against HTTPS websites by collecting
@@ -11,40 +13,44 @@ and auditing the certificates being presented to your 
browser. Would you like
 to turn it on?--
 
 !ENTITY ssl-observatory.popup.title 
-
+Dapat bang gamitin ng HTTPS Everywhere ang SSL Observatory?
 
-!ENTITY ssl-observatory.popup.yes 
+!ENTITY ssl-observatory.popup.yes Oo
 
 !-- Observatory preferences dialog --
 
 !ENTITY ssl-observatory.prefs.adv_priv_opts1
-
+It is safe to enable this, unless you use a very
+intrusive corporate network:
 
 !ENTITY ssl-observatory.prefs.adv_priv_opts2
-
+Ligtas ito, maliban na lang kung gumagamit ka ng corporate network na may mga 
sikretong intranet server name:
 
 !ENTITY ssl-observatory.prefs.alt_roots 
-
+Submit and check certificates signed by non-standard root CAs
 
 !ENTITY ssl-observatory.prefs.alt_roots_tooltip 
-
+It is safe (and a good idea) to enable this option, unless you use an 
intrusive corporate network or Kaspersky antivirus software that monitors your 
browsing with a TLS proxy and a private root Certificate Authority.  If enabled 
on such a network, this option might publish evidence of which https:// domains 
were being visited through that proxy, because of the unique certificates it 
would produce.  So we leave it off by default.
 
-!ENTITY ssl-observatory.prefs.anonymous 
+!ENTITY ssl-observatory.prefs.anonymous Check certificates using Tor for 
anonymity
 !ENTITY ssl-observatory.prefs.anonymous_unavailable 
-
+Check certificates using Tor for anonymity (requires Tor)
 !ENTITY ssl-observatory.prefs.anonymous_tooltip 
-
+This option requires Tor to be installed and running
 
 !ENTITY ssl-observatory.prefs.asn 
-
+When you see a new certificate, tell the Observatory which ISP you are 
connected to
 
 !ENTITY ssl-observatory.prefs.asn_tooltip
-
+This will fetch and send the quot;Autonomous System numberquot; of your 
network.  This will help us locate attacks against HTTPS, and to determine 
whether we have observations from networks in places like Iran and Syria where 
attacks are comparatively common.
 
-!ENTITY ssl-observatory.prefs.done 
+!ENTITY ssl-observatory.prefs.done Tapos na
 
 !ENTITY ssl-observatory.prefs.explanation 
-
+HTTPS Everywhere can use EFF's SSL Observatory.  This does two things: (1)
+sends copies of HTTPS certificates to the Observatory, to help us
+detect 'man in the middle' attacks and improve the Web's security; and (2)
+lets us warn you about insecure connections or attacks on your browser.
 
 !--!ENTITY ssl-observatory.prefs.explanation2
 When you visit https://www.example.com, the Observatory will learn that
@@ -53,34 +59,37 @@ Mouseover the options for further details:--
 
 !ENTITY ssl-observatory.prefs.explanation2
 
-
+For example, when you visit https://www.something.com, the certificate
+received by the Observatory will indicate that somebody visited
+www.something.com, but not who visited the site, or what specific page they
+looked at.  Mouseover the options for further details:
 
-!ENTITY ssl-observatory.prefs.hide 
+!ENTITY ssl-observatory.prefs.hide Hide advanced options
 
 !ENTITY ssl-observatory.prefs.nonanon 
-
+Check certificates even if Tor is not available
 
 !ENTITY ssl-observatory.prefs.nonanon_tooltip
-
+We will still try to keep the data anonymous, but this option is less secure
 
 !ENTITY ssl-observatory.prefs.priv_dns 
-
+Submit and check certificates for non-public DNS names
 
 !ENTITY ssl-observatory.prefs.priv_dns_tooltip
-
+Unless this option is checked, the Observatory will not record certificates 
for names that it cannot resolve through the DNS system.
 
-!ENTITY ssl-observatory.prefs.show 
+!ENTITY ssl-observatory.prefs.show Show advanced options
 
-!ENTITY ssl-observatory.prefs.title 
+!ENTITY ssl-observatory.prefs.title SSL Observatory Preferences
 
-!ENTITY ssl-observatory.prefs.use 
-!ENTITY ssl-observatory.warning.title 
-!ENTITY 

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

2013-12-08 Thread translation
commit 1bf7540ff3715ea14f3e0394cbb769fde6d38c3c
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 16:15:53 2013 +

Update translations for https_everywhere
---
 fil/ssl-observatory.dtd |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fil/ssl-observatory.dtd b/fil/ssl-observatory.dtd
index 2469e1f..1e0d603 100644
--- a/fil/ssl-observatory.dtd
+++ b/fil/ssl-observatory.dtd
@@ -82,12 +82,12 @@ looked at.  Mouseover the options for further details:
 
 !ENTITY ssl-observatory.prefs.title SSL Observatory Preferences
 
-!ENTITY ssl-observatory.prefs.use Use the Observatory?
-!ENTITY ssl-observatory.warning.title WARNING from EFF's SSL Observatory
+!ENTITY ssl-observatory.prefs.use Gamitin ang Observatory?
+!ENTITY ssl-observatory.warning.title BABALA mula sa SSL Observatory ng EFF
 !ENTITY ssl-observatory.warning.showcert Ipakita ang certificate chain
 !ENTITY ssl-observatory.warning.okay Nauunawaan ko
 !ENTITY ssl-observatory.warning.text EFF's SSL Observatory has issued a 
warning about the HTTPS certificiate(s) for this site:
-!ENTITY ssl-observatory.warning.defense If you are logged in to this site, 
it may be advisable to change your password once you have a safe connection.
+!ENTITY ssl-observatory.warning.defense Kung naka-log in ka sa site na ito, 
pinapayuhan ka naming baguhin ang iyong password sa sandaling magkaroon ka na 
ng ligtas na connection.
 
 !ENTITY ssl-observatory.prefs.self_signed
 Submit and check self-signed certificates

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


[tor-commits] [metrics-web/master] Remove more of the old user stats code.

2013-12-08 Thread karsten
commit 9fb8d3ff54dcd461a579a39c3487ee5a4a542bf4
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Thu Dec 5 08:50:19 2013 +0100

Remove more of the old user stats code.
---
 db/tordir.sql  |9 -
 etc/web.xml|6 -
 rserve/csv.R   |   90 ---
 rserve/graphs.R|  118 
 rserve/tables.R|   87 ---
 src/org/torproject/ernie/cron/Main.java|   23 -
 .../ernie/cron/users/BridgeStatsFileHandler.java   |  718 
 .../ernie/web/graphs/RObjectGenerator.java |   12 -
 8 files changed, 1063 deletions(-)

diff --git a/db/tordir.sql b/db/tordir.sql
index e62732d..6b31aee 100644
--- a/db/tordir.sql
+++ b/db/tordir.sql
@@ -904,15 +904,6 @@ CREATE TABLE dirreq_stats (
 PRIMARY KEY (source, statsend, seconds, country)
 );
 
--- TABLE bridge_stats
--- Contains daily bridge users by country.
-CREATE TABLE bridge_stats (
-date DATE NOT NULL,
-country CHARACTER(2) NOT NULL,
-users INTEGER NOT NULL,
-CONSTRAINT bridge_stats_pkey PRIMARY KEY (date, country)
-);
-
 -- TABLE torperf_stats
 -- Quantiles and medians of daily torperf results.
 CREATE TABLE torperf_stats (
diff --git a/etc/web.xml b/etc/web.xml
index 9b4f23a..3f49001 100644
--- a/etc/web.xml
+++ b/etc/web.xml
@@ -187,12 +187,6 @@
 url-pattern/dirbytes.png/url-pattern
 url-pattern/dirbytes.pdf/url-pattern
 url-pattern/dirbytes.svg/url-pattern
-url-pattern/direct-users.png/url-pattern
-url-pattern/direct-users.pdf/url-pattern
-url-pattern/direct-users.svg/url-pattern
-url-pattern/bridge-users.png/url-pattern
-url-pattern/bridge-users.pdf/url-pattern
-url-pattern/bridge-users.svg/url-pattern
 url-pattern/torperf.png/url-pattern
 url-pattern/torperf.pdf/url-pattern
 url-pattern/torperf.svg/url-pattern
diff --git a/rserve/csv.R b/rserve/csv.R
index e93b90f..8150b17 100644
--- a/rserve/csv.R
+++ b/rserve/csv.R
@@ -138,39 +138,6 @@ export_relayflags - function(path) {
   write.csv(relayflags, path, quote = FALSE, row.names = FALSE)
 }
 
-export_direct_users - function(path) {
-  drv - dbDriver(PostgreSQL)
-  con - dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
-  q - paste(SELECT date, country, r, bwp, brn, bwn, brp, bwr, brr,
-  FROM user_stats WHERE date  current_date - 3,
-  ORDER BY date, country)
-  rs - dbSendQuery(con, q)
-  u - fetch(rs, n = -1)
-  dbDisconnect(con)
-  dbUnloadDriver(drv)
-  directusers - data.frame(date = u$date, country = u$country,
-   directusers = floor(u$r * (u$bwp * u$brn / u$bwn - u$brp) /
-   (u$bwr * u$brn / u$bwn - u$brr) / 10))
-  directusers - cast(directusers, date ~ country, value = directusers)
-  names(directusers)[names(directusers) == zy] - all
-  write.csv(directusers, path, quote = FALSE, row.names = FALSE)
-}
-
-export_bridge_users - function(path) {
-  drv - dbDriver(PostgreSQL)
-  con - dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
-  q - paste(SELECT date, country, users AS bridgeusers,
-  FROM bridge_stats WHERE date  current_date - 3,
-  ORDER BY date, country)
-  rs - dbSendQuery(con, q)
-  bridgeusers - fetch(rs, n = -1)
-  dbDisconnect(con)
-  dbUnloadDriver(drv)
-  bridgeusers - cast(bridgeusers, date ~ country, value = bridgeusers)
-  names(bridgeusers)[names(bridgeusers) == zy] - all
-  write.csv(bridgeusers, path, quote = FALSE, row.names = FALSE)
-}
-
 export_torperf - function(path) {
   drv - dbDriver(PostgreSQL)
   con - dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
@@ -196,43 +163,6 @@ export_torperf_failures - function(path) {
   write.csv(torperf, path, quote = FALSE, row.names = FALSE)
 }
 
-help_export_monthly_users - function(path, aggr_fun) {
-  drv - dbDriver(PostgreSQL)
-  con - dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
-  q - paste(SELECT date, country, r, bwp, brn, bwn, brp, bwr, brr,
-  FROM user_stats WHERE date  current_date - 3,
-  ORDER BY date, country)
-  rs - dbSendQuery(con, q)
-  u - fetch(rs, n = -1)
-  direct - data.frame(date = u$date, country = u$country,
-   users = u$r * (u$bwp * u$brn / u$bwn - u$brp) /
-   (u$bwr * u$brn / u$bwn - u$brr) / 10)
-  q - paste(SELECT date, country, FLOOR(users) AS users,
-  FROM bridge_stats WHERE date  current_date - 3,
-  ORDER BY date, country)
-  rs - dbSendQuery(con, q)
-  bridge - fetch(rs, n = -1)
-  dbDisconnect(con)
-  dbUnloadDriver(drv)
-  users - rbind(bridge, direct)
-  users - aggregate(users$users,
-  by = list(date = users$date, country = users$country), sum)
-  users - aggregate(users$x, by = list(month = substr(users$date, 1, 7),
-  country = users$country), aggr_fun)
-  users - cast(users, country ~ month, value = x)
-  users[users$country == zy, 1] - all
-  users[, 2:length(users)] - 

[tor-commits] [metrics-web/master] Update tools diagram and page.

2013-12-08 Thread karsten
commit c061c1b51cf8e662a9982fb5dd970fd8be6344b9
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Dec 8 17:55:32 2013 +0100

Update tools diagram and page.

Changes are:

- There is no separate task-2718 code for users.html anymore, but that
  code has been included in the metrics-web repository.
- The previously missing bubbles.html is now contained in the diagram.
- ExoneraTor and DocTor have their own subdomains now.  ExoneraTor has
  its own Git repository now.
---
 web/WEB-INF/tools.jsp   |   14 +++---
 web/images/tor-metrics-overview.png |  Bin 246279 - 252686 bytes
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/web/WEB-INF/tools.jsp b/web/WEB-INF/tools.jsp
index a6ee0ff..dc56751 100644
--- a/web/WEB-INF/tools.jsp
+++ b/web/WEB-INF/tools.jsp
@@ -71,20 +71,20 @@
 h3a href=#present class=anchorPresenting Tor network
 data/a/h3
 br
-pThere are currently three main websites and a few additional
-tools presenting Tor network data:
+pThere are a few websites and additional tools presenting Tor
+network data:
 ul
   lia 
href=https://gitweb.torproject.org/metrics-web.git;metrics-web/a
-  is the software behind this website, including a database to
-  aggregate most of the presented statistics./li
+  is the software behind this website, including aggregation code
+  for the presented statistics./li
   lia 
href=https://gitweb.torproject.org/metrics-tasks.git/tree/HEAD:/task-6498;task-6498/a
   aggregates data to visualize fast exits in the Tor network./li
-  lia 
href=https://gitweb.torproject.org/metrics-tasks.git/tree/HEAD:/task-2718;task-2718/a
-  takes the number of daily Tor users as input and attempts to
-  find anomalies that might be indicative of censorship./li
   lia 
href=https://gitweb.torproject.org/metrics-tasks.git/tree/HEAD:/task-8462;task-8462/a
   estimates daily users from reported directory request
   statistics./li
+  lia 
href=https://gitweb.torproject.org/exonerator.git;ExoneraTor/a
+  is a website that tells you whether a given IP address was a Tor
+  relay./li
   lia href=https://gitweb.torproject.org/doctor.git;DocTor/a
   is a service that periodically checks the Tor network for
   consensus conflicts and other hiccups./li
diff --git a/web/images/tor-metrics-overview.png 
b/web/images/tor-metrics-overview.png
index 8ffaca9..4a7c33a 100644
Binary files a/web/images/tor-metrics-overview.png and 
b/web/images/tor-metrics-overview.png differ

___
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_completed] Update translations for tails-persistence-setup_completed

2013-12-08 Thread translation
commit 041d578e3c1e66e3d0ba4b9d77c71d539eab035f
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 18:46:02 2013 +

Update translations for tails-persistence-setup_completed
---
 nl/nl.po |  119 --
 1 file changed, 61 insertions(+), 58 deletions(-)

diff --git a/nl/nl.po b/nl/nl.po
index 23dc5f2..f7883e7 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -3,16 +3,17 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# cialenhh c1914...@drdrb.com, 2013
 # Samez elbachiriouss...@gmail.com, 2013
 # Richard E. van der Luit nip...@fedoraproject.org, 2012
 # Shondoit Walker shond...@gmail.com, 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-09-29 14:53+0200\n
-PO-Revision-Date: 2013-10-11 13:00+\n
-Last-Translator: Samez elbachiriouss...@gmail.com\n
+Report-Msgid-Bugs-To: Tails developers ta...@boum.org\n
+POT-Creation-Date: 2013-11-15 11:30+0100\n
+PO-Revision-Date: 2013-12-08 18:44+\n
+Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -26,7 +27,7 @@ msgstr Persoonlijke Data
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:50
 msgid Keep files stored in the `Persistent' directory
-msgstr Houd bestanden opgeslagen in de 'Duurzaam'-map
+msgstr Houd bestanden opgeslagen in de 'Persistent'-map
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:58
 msgid GnuPG
@@ -34,7 +35,7 @@ msgstr GnuPG
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:60
 msgid GnuPG keyrings and configuration
-msgstr GnuPG sleutelring  en configuratie
+msgstr GnuPG sleutelringen en configuratie
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:68
 msgid SSH Client
@@ -58,7 +59,7 @@ msgstr Claws Mail
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:90
 msgid Claws Mail profiles and locally stored email
-msgstr Claws Mail-profielen en lokaal opgeslagen email
+msgstr Claws Mail-profielen en lokaal opgeslagen e-mail
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:98
 msgid GNOME Keyring
@@ -70,11 +71,11 @@ msgstr Secrets opgeslagen GNOME sleutelring
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:108
 msgid Network Connections
-msgstr Netwerkconnecties
+msgstr Netwerkverbindingen
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:110
 msgid Configuration of network devices and connections
-msgstr Configuratie van netwerkapparaten en connecties
+msgstr Configuratie van netwerkapparaten en verbindingen
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:118
 msgid Browser bookmarks
@@ -90,7 +91,7 @@ msgstr Printers
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:130
 msgid Printers configuration
-msgstr Printer configuratie
+msgstr Printers configuratie
 
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:138
 msgid APT Packages
@@ -115,84 +116,78 @@ msgstr Puntbestanden
 #: ../lib/Tails/Persistence/Configuration/Presets.pm:160
 msgid 
 Symlink into $HOME every file or directory found in the `dotfiles' directory
-msgstr Symlink naar $HOME elk bestand of map dat gevonden is in de 
`puntbestanden'-map
+msgstr Symlink elk bestand of map dat gevonden is in de `puntbestanden'-map 
naar $HOME
 
-#: ../lib/Tails/Persistence/Setup.pm:257
-msgid 
-The device Tails is running from cannot be found. Maybe you used the `toram'
- option?
-msgstr Het apparaat waarvan Tails is opgestart kan niet worden gevonden. 
Misschien heb je de optie 'toram' gebruikt?
-
-#: ../lib/Tails/Persistence/Setup.pm:276
+#: ../lib/Tails/Persistence/Setup.pm:226
 msgid Setup Tails persistent volume
 msgstr Instellingen Tails persistent volume
 
-#: ../lib/Tails/Persistence/Setup.pm:420
+#: ../lib/Tails/Persistence/Setup.pm:330
 #, perl-format
 msgid Device %s already has a persistent volume.
 msgstr Apparaat %s heeft al een persistent volume.
 
-#: ../lib/Tails/Persistence/Setup.pm:428
+#: ../lib/Tails/Persistence/Setup.pm:338
 #, perl-format
 msgid Device %s has not enough unallocated space.
-msgstr Apparaat %s heeft niet genoeg ongealloceerde ruimte.
+msgstr Apparaat %s heeft niet genoeg niet-toegewezen ruimte.
 
-#: ../lib/Tails/Persistence/Setup.pm:436 ../lib/Tails/Persistence/Setup.pm:450
+#: ../lib/Tails/Persistence/Setup.pm:346 ../lib/Tails/Persistence/Setup.pm:360
 #, perl-format
 msgid Device %s has no persistent volume.
 msgstr Apparaat %s heeft geen persistent volume.
 
-#: ../lib/Tails/Persistence/Setup.pm:442
+#: ../lib/Tails/Persistence/Setup.pm:352
 msgid 
 Cannot delete the persistent volume while in use. You should restart Tails 
 without persistence.
 msgstr Kan geen persistent volume verwijderen wanneer dat in gebruik is. Je 
dient Tails op te starten zonder persistentie.
 
-#: ../lib/Tails/Persistence/Setup.pm:461

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

2013-12-08 Thread translation
commit 2e96c05603880b195dd3c9e5b804cdb5aa2efa1a
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 19:15:56 2013 +

Update translations for https_everywhere_completed
---
 nl/https-everywhere.properties |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/nl/https-everywhere.properties b/nl/https-everywhere.properties
index e95c874..0d5e56b 100644
--- a/nl/https-everywhere.properties
+++ b/nl/https-everywhere.properties
@@ -2,6 +2,7 @@ https-everywhere.menu.globalEnable = HTTPS Everywhere 
inschakelen
 https-everywhere.menu.globalDisable = HTTPS Everywhere uitschakelen
 https-everywhere.menu.enableDisable = Regels in-/uitschakelen
 https-everywhere.menu.noRules = (Geen regels voor deze pagina)
-https-everywhere.menu.unknownRules = (Regels voor deze pagina zijn onbekend)
-https-everywhere.toolbar.hint = HTTPS Everywhere is nu geactiveerd. Je kan dit 
aanpassen door op een site-by-site basis te clicken op het icoon naast de adres 
bar.
-https-everywhere.migration.notification0 = Om een cruciale oplossing te 
implementeren, reset deze update je HTTPS Everywhere regel voorkeuren naar de 
standaard waarden.
+https-everywhere.menu.unknownRules = (Regels voor deze pagina onbekend)
+https-everywhere.toolbar.hint = HTTPS Everywhere is nu actief. Je kunt dit 
aanpassen door op een site-by-site basis te klikken op het icoon in de 
adresbalk.
+https-everywhere.migration.notification0 = Om een cruciale oplossing te 
bewerkstelligen, reset deze update je HTTPS Everywhere regels voorkeuren naar 
de standaard waarden.
+https-everywhere.menu.ruleset-tests = Voer de HTTPS Everywhere Ruleset Tests 
uit

___
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-12-08 Thread translation
commit 4fdb3a4738f247ff1582276f2df2ecd00d035da7
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 19:15:58 2013 +

Update translations for liveusb-creator
---
 nl/nl.po |   89 +++---
 1 file changed, 45 insertions(+), 44 deletions(-)

diff --git a/nl/nl.po b/nl/nl.po
index 198eabe..55eea06 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# cialenhh c1914...@drdrb.com, 2013
 # Geert Warrink geert.warr...@onsnet.nu, 2009-2010
 # Richard E. van der Luit nip...@fedoraproject.org, 2012
 # Shondoit Walker shond...@gmail.com, 2013
@@ -12,9 +13,9 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
-POT-Creation-Date: 2013-11-12 13:29+0100\n
-PO-Revision-Date: 2013-11-13 09:23+\n
-Last-Translator: runasand runa.sand...@gmail.com\n
+POT-Creation-Date: 2013-11-30 15:23+0100\n
+PO-Revision-Date: 2013-12-08 19:13+\n
+Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -97,7 +98,7 @@ msgid 
 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 Door extra ruimte voor persistente opslag op je USB stick toe te 
wijzen, kun je data en permanente aanpassingen maken op je live 
besturingssysteem. Zonder dit kun je geen data opslaan dat bewaard blijft na 
opnieuw opstarten.
+msgstr Door extra ruimte voor persistente opslag op je USB stick toe te 
wijzen, kun je data en permanente aanpassingen bewaren op je live 
besturingssysteem. Zonder dit kun je geen data opslaan die bewaard blijft na 
opnieuw opstarten.
 
 #: ../liveusb/creator.py:1125 ../liveusb/creator.py:1388
 #, python-format
@@ -106,7 +107,7 @@ msgstr SHA1 berekenen van %s
 
 #: ../liveusb/creator.py:1336
 msgid Cannot find
-msgstr Niet gevonden:
+msgstr Niet gevonden
 
 #: ../liveusb/creator.py:545
 #, python-format
@@ -135,7 +136,7 @@ msgstr %sMb persistente geheugenruimte aanmaken...
 #: ../liveusb/gui.py:565
 msgid 
 Device is not yet mounted, so we cannot determine the amount of free space.
-msgstr Apparaat is niet aangekoppeld, daarom kunnen we de hoveelheid vrije 
ruimte niet bepalen.
+msgstr Apparaat is nog niet aangekoppeld, daarom kunnen we de hoveelheid 
vrije ruimte niet bepalen.
 
 #: ../liveusb/dialog.py:166
 #, python-format
@@ -144,16 +145,16 @@ msgstr Download %(distribution)s
 
 #: ../liveusb/gui.py:781
 msgid Download complete!
-msgstr Download klaar!
+msgstr Download voltooid!
 
 #: ../liveusb/gui.py:785
 msgid Download failed: 
-msgstr Download mislukte: 
+msgstr Download mislukt: 
 
 #: ../liveusb/gui.py:88
 #, python-format
 msgid Downloading %s...
-msgstr Downloaden %s...
+msgstr %s downloaden...
 
 #: ../liveusb/creator.py:1121
 msgid Drive is a loopback, skipping MBR reset
@@ -162,7 +163,7 @@ msgstr Station is een loopback, MBR-reset wordt 
overgeslagen
 #: ../liveusb/creator.py:816
 #, python-format
 msgid Entering unmount_device for '%(device)s'
-msgstr Binnengaan unmount_device voor '%(device)s'
+msgstr Unmount_device voor '%(device)s' binnengaan
 
 #: ../liveusb/creator.py:1201
 msgid Error probing device
@@ -178,7 +179,7 @@ msgstr Fout: Kan het label niet zetten of de UUID van jouw 
apparaat niet verkri
 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 Fout: De SHA1 van jouw Live CD is niet correct.  Je kunt het programma 
uitvoeren met het --noverify argument om deze controle over te slaan.
+msgstr Fout: De SHA1 van jouw Live CD is niet correct.  Je kunt dit programma 
uitvoeren met het --noverify argument om deze controle over te slaan.
 
 #: ../liveusb/creator.py:145
 msgid Extracting live image to the target device...
@@ -187,7 +188,7 @@ msgstr 
 #: ../liveusb/creator.py:1066
 #, python-format
 msgid Formatting %(device)s as FAT32
-msgstr Formatteren %(device)s als FAT32
+msgstr %(device)s als FAT32 formatteren
 
 #: ../liveusb/creator.py:140
 msgid ISO MD5 checksum passed
@@ -201,7 +202,7 @@ msgstr ISO MD5 checksumverificatie niet gelukt
 msgid 
 If you do not select an existing Live ISO, the selected release will be 
 downloaded for you.
-msgstr Als je geen bestaande Live ISO selecteerd, zal de geselecteerde 
release gedownload worden.
+msgstr Als je geen bestaande Live ISO selecteert, zal de geselecteerde 
release voor je gedownload worden.
 
 #: ../liveusb/dialog.py:174
 msgid Install Tails
@@ -226,18 +227,18 @@ msgstr Bootloader installeren...
 
 #: ../liveusb/gui.py:284
 msgid LiveUSB creation failed!
-msgstr LiveUSB aanmaken faalde!
+msgstr LiveUSB aanmaken mislukt!
 
 #: ../liveusb/creator.py:1337
 msgid 
 Make sure to 

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

2013-12-08 Thread translation
commit 8c3ac6c3876ab39037e88f278271a0d01652c5e6
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 19:15:52 2013 +

Update translations for https_everywhere
---
 nl/https-everywhere.properties |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/nl/https-everywhere.properties b/nl/https-everywhere.properties
index cc05806..0d5e56b 100644
--- a/nl/https-everywhere.properties
+++ b/nl/https-everywhere.properties
@@ -2,7 +2,7 @@ https-everywhere.menu.globalEnable = HTTPS Everywhere 
inschakelen
 https-everywhere.menu.globalDisable = HTTPS Everywhere uitschakelen
 https-everywhere.menu.enableDisable = Regels in-/uitschakelen
 https-everywhere.menu.noRules = (Geen regels voor deze pagina)
-https-everywhere.menu.unknownRules = (Regels voor deze pagina zijn onbekend)
-https-everywhere.toolbar.hint = HTTPS Everywhere is nu geactiveerd. Je kan dit 
aanpassen door op een site-by-site basis te clicken op het icoon naast de adres 
bar.
-https-everywhere.migration.notification0 = Om een cruciale oplossing te 
implementeren, reset deze update je HTTPS Everywhere regel voorkeuren naar de 
standaard waarden.
-# https-everywhere.menu.ruleset-tests = Run HTTPS Everywhere Ruleset Tests
+https-everywhere.menu.unknownRules = (Regels voor deze pagina onbekend)
+https-everywhere.toolbar.hint = HTTPS Everywhere is nu actief. Je kunt dit 
aanpassen door op een site-by-site basis te klikken op het icoon in de 
adresbalk.
+https-everywhere.migration.notification0 = Om een cruciale oplossing te 
bewerkstelligen, reset deze update je HTTPS Everywhere regels voorkeuren naar 
de standaard waarden.
+https-everywhere.menu.ruleset-tests = Voer de HTTPS Everywhere Ruleset Tests 
uit

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


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

2013-12-08 Thread translation
commit 246a35e7c90e40dcb8ad9c555998495324189fc9
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 19:45:57 2013 +

Update translations for liveusb-creator_completed
---
 nl/nl.po |  339 +-
 1 file changed, 180 insertions(+), 159 deletions(-)

diff --git a/nl/nl.po b/nl/nl.po
index c6a25d2..6518bd4 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# cialenhh c1914...@drdrb.com, 2013
 # Geert Warrink geert.warr...@onsnet.nu, 2009-2010
 # Richard E. van der Luit nip...@fedoraproject.org, 2012
 # Shondoit Walker shond...@gmail.com, 2013
@@ -11,10 +12,10 @@
 msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
-Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n;
-POT-Creation-Date: 2013-09-09 11:21+0200\n
-PO-Revision-Date: 2013-09-25 08:40+\n
-Last-Translator: Lazlo transi...@lazlo.me\n
+Report-Msgid-Bugs-To: \n
+POT-Creation-Date: 2013-11-30 15:23+0100\n
+PO-Revision-Date: 2013-12-08 19:29+\n
+Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -22,143 +23,149 @@ msgstr 
 Language: nl\n
 Plural-Forms: nplurals=2; plural=(n != 1);\n
 
-#: ../liveusb/dialog.py:150 ../liveusb/launcher_ui.py:149
+#: ../liveusb/dialog.py:159 ../liveusb/launcher_ui.py:158
 #, python-format
-msgid %(distribution)s LiveUSB Creator
-msgstr %(distribution)s LiveUSB Creator
+msgid %(distribution)s installer
+msgstr %(distribution)s installer
 
-#: ../liveusb/gui.py:776
+#: ../liveusb/gui.py:807
 #, python-format
 msgid %(filename)s selected
 msgstr %(filename)s geselecteerd
 
-#: ../liveusb/creator.py:1004
+#: ../liveusb/gui.py:437
+#, python-format
+msgid %(size)s %(label)s
+msgstr %(size)s %(label)s
+
+#: ../liveusb/gui.py:443
+#, python-format
+msgid %(vendor)s %(model)s (%(details)s) - %(device)s
+msgstr %(vendor)s %(model)s (%(details)s) - %(device)s
+
+#: ../liveusb/creator.py:1023
 #, python-format
 msgid %s already bootable
 msgstr %s is al bootable
 
-#: ../liveusb/launcher_ui.py:156
+#: ../liveusb/launcher_ui.py:165
 msgid 
 !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 
\http://www.w3.org/TR/REC-html40/strict.dtd\;\n
 htmlheadmeta name=\qrichtext\ content=\1\ /style 
type=\text/css\\n
 p, li { white-space: pre-wrap; }\n
 /style/headbody style=\ font-family:'Sans Serif'; font-size:9pt; 
font-weight:400; font-style:normal;\\n
-p align=\center\ style=\ margin-top:0px; margin-bottom:0px; 
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\span 
style=\ font-size:10pt;\Need help? Read the /spana 
href=\file:///usr/share/doc/tails/website/doc/first_steps/usb_installation.en.html\span
 style=\ text-decoration: underline; 
color:#ff;\documentation/span/aspan style=\ 
font-size:10pt;\./span/p/body/html
-msgstr !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 
\http://www.w3.org/TR/REC-html40/strict.dtd\;\nhtmlheadmeta 
name=\qrichtext\ content=\1\ /style type=\text/css\\np, li { 
white-space: pre-wrap; }\n/style/headbody style=\ font-family:'Sans 
Serif'; font-size:9pt; font-weight:400; font-style:normal;\\np 
align=\center\ style=\ margin-top:0px; margin-bottom:0px; margin-left:0px; 
margin-right:0px; -qt-block-indent:0; text-indent:0px;\span style=\ 
font-size:10pt;\Help nodig? Lees de /spana 
href=\file:///usr/share/doc/tails/website/doc/first_steps/usb_installation.en.html\span
 style=\ text-decoration: underline; 
color:#ff;\documentatie/span/aspan style=\ 
font-size:10pt;\./span/p/body/html
+p align=\center\ style=\ margin-top:0px; margin-bottom:0px; 
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\span 
style=\ font-size:10pt;\Need help? Read the /spana 
href=\file:///usr/share/doc/tails/website/doc/first_steps/installation.en.html\span
 style=\ text-decoration: underline; 
color:#ff;\documentation/span/aspan style=\ 
font-size:10pt;\./span/p/body/html
+msgstr !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 
\http://www.w3.org/TR/REC-html40/strict.dtd\;\nhtmlheadmeta 
name=\qrichtext\ content=\1\ /style type=\text/css\\np, li { 
white-space: pre-wrap; }\n/style/headbody style=\ font-family:'Sans 
Serif'; font-size:9pt; font-weight:400; font-style:normal;\\np 
align=\center\ style=\ margin-top:0px; margin-bottom:0px; margin-left:0px; 
margin-right:0px; -qt-block-indent:0; text-indent:0px;\span style=\ 
font-size:10pt;\Hulp nodig? Lees de /spana 
href=\file:///usr/share/doc/tails/website/doc/first_steps/installation.en.html\span
 style=\ text-decoration: underline; 
color:#ff;\documentation/span/aspan style=\ 
font-size:10pt;\./span/p/body/html
 
-#: ../liveusb/launcher_ui.py:151
+#: ../liveusb/launcher_ui.py:160
 msgid 
 !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 

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

2013-12-08 Thread translation
commit 60468f7068a67dbeaa37a3377be6eef90b747044
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 19:45:54 2013 +

Update translations for liveusb-creator
---
 nl/nl.po |   36 ++--
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/nl/nl.po b/nl/nl.po
index 55eea06..6518bd4 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -14,7 +14,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2013-11-30 15:23+0100\n
-PO-Revision-Date: 2013-12-08 19:13+\n
+PO-Revision-Date: 2013-12-08 19:29+\n
 Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\n
 MIME-Version: 1.0\n
@@ -26,7 +26,7 @@ msgstr 
 #: ../liveusb/dialog.py:159 ../liveusb/launcher_ui.py:158
 #, python-format
 msgid %(distribution)s installer
-msgstr 
+msgstr %(distribution)s installer
 
 #: ../liveusb/gui.py:807
 #, python-format
@@ -36,12 +36,12 @@ msgstr %(filename)s geselecteerd
 #: ../liveusb/gui.py:437
 #, python-format
 msgid %(size)s %(label)s
-msgstr 
+msgstr %(size)s %(label)s
 
 #: ../liveusb/gui.py:443
 #, python-format
 msgid %(vendor)s %(model)s (%(details)s) - %(device)s
-msgstr 
+msgstr %(vendor)s %(model)s (%(details)s) - %(device)s
 
 #: ../liveusb/creator.py:1023
 #, python-format
@@ -55,7 +55,7 @@ msgid 
 p, li { white-space: pre-wrap; }\n
 /style/headbody style=\ font-family:'Sans Serif'; font-size:9pt; 
font-weight:400; font-style:normal;\\n
 p align=\center\ style=\ margin-top:0px; margin-bottom:0px; 
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\span 
style=\ font-size:10pt;\Need help? Read the /spana 
href=\file:///usr/share/doc/tails/website/doc/first_steps/installation.en.html\span
 style=\ text-decoration: underline; 
color:#ff;\documentation/span/aspan style=\ 
font-size:10pt;\./span/p/body/html
-msgstr 
+msgstr !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 
\http://www.w3.org/TR/REC-html40/strict.dtd\;\nhtmlheadmeta 
name=\qrichtext\ content=\1\ /style type=\text/css\\np, li { 
white-space: pre-wrap; }\n/style/headbody style=\ font-family:'Sans 
Serif'; font-size:9pt; font-weight:400; font-style:normal;\\np 
align=\center\ style=\ margin-top:0px; margin-bottom:0px; margin-left:0px; 
margin-right:0px; -qt-block-indent:0; text-indent:0px;\span style=\ 
font-size:10pt;\Hulp nodig? Lees de /spana 
href=\file:///usr/share/doc/tails/website/doc/first_steps/installation.en.html\span
 style=\ text-decoration: underline; 
color:#ff;\documentation/span/aspan style=\ 
font-size:10pt;\./span/p/body/html
 
 #: ../liveusb/launcher_ui.py:160
 msgid 
@@ -64,7 +64,7 @@ msgid 
 p, li { white-space: pre-wrap; }\n
 /style/headbody style=\ font-family:'Sans Serif'; font-size:9pt; 
font-weight:400; font-style:normal;\\n
 p style=\ margin-top:0px; margin-bottom:0px; margin-left:0px; 
margin-right:0px; -qt-block-indent:0; text-indent:0px;\span style=\ 
font-size:10pt;\Copy the running Tails onto a USB stick or SD card. All data 
on the target drive will be lost./span/p/body/html
-msgstr 
+msgstr !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 
\http://www.w3.org/TR/REC-html40/strict.dtd\;\nhtmlheadmeta 
name=\qrichtext\ content=\1\ /style type=\text/css\\np, li { 
white-space: pre-wrap; }\n/style/headbody style=\ font-family:'Sans 
Serif'; font-size:9pt; font-weight:400; font-style:normal;\\np style=\ 
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; 
-qt-block-indent:0; text-indent:0px;\span style=\ font-size:10pt;\Kopieer 
de functionerende Tails naar een USB-stick of naar een SD-kaart. Alle data op 
de doelschijf zal verloren gaan./span/p/body/html
 
 #: ../liveusb/launcher_ui.py:162
 msgid 
@@ -73,7 +73,7 @@ msgid 
 p, li { white-space: pre-wrap; }\n
 /style/headbody style=\ font-family:'Sans Serif'; font-size:9pt; 
font-weight:400; font-style:normal;\\n
 p style=\ margin-top:0px; margin-bottom:0px; margin-left:0px; 
margin-right:0px; -qt-block-indent:0; text-indent:0px;\span style=\ 
font-size:10pt;\Copy the running Tails onto an already installed Tails 
device. Other partitions found on the stick are 
preserved./span/p/body/html
-msgstr 
+msgstr !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.0//EN\ 
\http://www.w3.org/TR/REC-html40/strict.dtd\;\nhtmlheadmeta 
name=\qrichtext\ content=\1\ /style type=\text/css\\np, li { 
white-space: pre-wrap; }\n/style/headbody style=\ font-family:'Sans 
Serif'; font-size:9pt; font-weight:400; font-style:normal;\\np style=\ 
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; 
-qt-block-indent:0; text-indent:0px;\span style=\ font-size:10pt;\Kopieer 
de functionerende Tails naar een reeds geïnstalleerd Tails apparaat. Andere 
partities die gevonden worden op de stick zijn 
behouden./span/p/body/html
 
 #: ../liveusb/launcher_ui.py:164
 msgid 
@@ -82,7 +82,7 @@ msgid 
 p, li { white-space: pre-wrap; }\n
 /style/headbody style=\ 

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

2013-12-08 Thread translation
commit dce823c3ef180456da04931eb4b37e21d4fbee5a
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:04 2013 +

Update translations for liveusb-creator
---
 nl/nl.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nl/nl.po b/nl/nl.po
index 6518bd4..9b04184 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -14,7 +14,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2013-11-30 15:23+0100\n
-PO-Revision-Date: 2013-12-08 19:29+\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\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/liveusb-creator_completed] Update translations for liveusb-creator_completed

2013-12-08 Thread translation
commit 77cedf8e890f62094cb069f82eda5623462fd4f6
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:06 2013 +

Update translations for liveusb-creator_completed
---
 nl/nl.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nl/nl.po b/nl/nl.po
index 6518bd4..9b04184 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -14,7 +14,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2013-11-30 15:23+0100\n
-PO-Revision-Date: 2013-12-08 19:29+\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\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/tails-persistence-setup_completed] Update translations for tails-persistence-setup_completed

2013-12-08 Thread translation
commit 8c94d8f3132f07258ce80d223049d6af950fcee4
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:11 2013 +

Update translations for tails-persistence-setup_completed
---
 nl/nl.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nl/nl.po b/nl/nl.po
index f7883e7..753ee44 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -12,7 +12,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: Tails developers ta...@boum.org\n
 POT-Creation-Date: 2013-11-15 11:30+0100\n
-PO-Revision-Date: 2013-12-08 18:44+\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\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/tails-persistence-setup] Update translations for tails-persistence-setup

2013-12-08 Thread translation
commit 3e8c6d7d21d0b7fc0f9f1ec10af33e9c6bdca724
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:08 2013 +

Update translations for tails-persistence-setup
---
 nl/nl.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nl/nl.po b/nl/nl.po
index f7883e7..753ee44 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -12,7 +12,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: Tails developers ta...@boum.org\n
 POT-Creation-Date: 2013-11-15 11:30+0100\n
-PO-Revision-Date: 2013-12-08 18:44+\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: cialenhh c1914...@drdrb.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\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-12-08 Thread translation
commit b714dc587d91b7eb74042380766f9b0c202a6265
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:45:18 2013 +

Update translations for vidalia_alpha
---
 fil/vidalia_fil.po |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fil/vidalia_fil.po b/fil/vidalia_fil.po
index de57982..4913067 100644
--- a/fil/vidalia_fil.po
+++ b/fil/vidalia_fil.po
@@ -5,7 +5,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: translati...@vidalia-project.net\n
 POT-Creation-Date: 2012-03-21 17:46+\n
-PO-Revision-Date: 2013-11-12 09:41+\n
+PO-Revision-Date: 2013-12-08 20:41+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\n
 MIME-Version: 1.0\n
@@ -3782,7 +3782,7 @@ msgstr 
 
 msgctxt UpdatesAvailableDialog
 msgid Version
-msgstr 
+msgstr Version
 
 msgctxt VMessageBox
 msgid OK
@@ -3794,11 +3794,11 @@ msgstr Kanselahin
 
 msgctxt VMessageBox
 msgid Yes
-msgstr 
+msgstr Oo
 
 msgctxt VMessageBox
 msgid No
-msgstr 
+msgstr Wala
 
 msgctxt VMessageBox
 msgid Help

___
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-12-08 Thread translation
commit 4b7885cc5c2e6da17819f230ecc61255975dca95
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:45:13 2013 +

Update translations for vidalia
---
 fil/vidalia_fil.po |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fil/vidalia_fil.po b/fil/vidalia_fil.po
index 682c9b5..590fa00 100644
--- a/fil/vidalia_fil.po
+++ b/fil/vidalia_fil.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-11-12 09:41+\n
+PO-Revision-Date: 2013-12-08 20:41+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\n
 MIME-Version: 1.0\n
@@ -3695,7 +3695,7 @@ msgstr 
 
 msgctxt UpdatesAvailableDialog
 msgid Version
-msgstr 
+msgstr Version
 
 msgctxt VMessageBox
 msgid OK
@@ -3707,11 +3707,11 @@ msgstr Kanselahin
 
 msgctxt VMessageBox
 msgid Yes
-msgstr 
+msgstr Oo
 
 msgctxt VMessageBox
 msgid No
-msgstr 
+msgstr Wala
 
 msgctxt VMessageBox
 msgid Help

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


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

2013-12-08 Thread translation
commit 73a3b3b113877e7cc97bdcbf43f4a85cd81efbbb
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:21 2013 +

Update translations for mat-gui
---
 fil.po |5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fil.po b/fil.po
index 4108432..f26b144 100644
--- a/fil.po
+++ b/fil.po
@@ -3,12 +3,13 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # 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: 2013-07-01 19:26+0200\n
-PO-Revision-Date: 2013-09-17 13:14+\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\n
 MIME-Version: 1.0\n
@@ -92,7 +93,7 @@ msgstr 
 
 #: mat-gui:354 data/mat.ui:291
 msgid Filename
-msgstr 
+msgstr Filename
 
 #: mat-gui:356
 msgid Mimetype

___
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-12-08 Thread translation
commit f94dd4dbcabef2aa5d9f8f8db6fb370686e8034e
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:13 2013 +

Update translations for tails-greeter
---
 fil/fil.po |   10 +-
 nl/nl.po   |6 +++---
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/fil/fil.po b/fil/fil.po
index 60602fc..dcc1cdf 100644
--- a/fil/fil.po
+++ b/fil/fil.po
@@ -6,9 +6,9 @@
 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-28 22:49+\n
+Report-Msgid-Bugs-To: \n
+POT-Creation-Date: 2013-11-22 13:49+0100\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\n
 MIME-Version: 1.0\n
@@ -35,11 +35,11 @@ msgstr 
 
 #: ../glade/persistencewindow.glade.h:5
 msgid Yes
-msgstr 
+msgstr Oo
 
 #: ../glade/persistencewindow.glade.h:6
 msgid No
-msgstr 
+msgstr Wala
 
 #: ../glade/persistencewindow.glade.h:7
 msgid Passphrase:
diff --git a/nl/nl.po b/nl/nl.po
index 78c4979..0c8c925 100644
--- a/nl/nl.po
+++ b/nl/nl.po
@@ -7,9 +7,9 @@
 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
+Report-Msgid-Bugs-To: \n
+POT-Creation-Date: 2013-11-22 13:49+0100\n
+PO-Revision-Date: 2013-12-08 20:42+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\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_installer] Update translations for vidalia_installer

2013-12-08 Thread translation
commit 8c1bc971dd5c7b25e834a15f1618bc8586be9284
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:45:48 2013 +

Update translations for vidalia_installer
---
 fil/vidalia_fil.po |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fil/vidalia_fil.po b/fil/vidalia_fil.po
index e7d396d..0dde52f 100755
--- a/fil/vidalia_fil.po
+++ b/fil/vidalia_fil.po
@@ -3,9 +3,9 @@
 msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
-Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n;
+Report-Msgid-Bugs-To: translati...@vidalia-project.net\n
 POT-Creation-Date: 2008-07-12 05:29+\n
-PO-Revision-Date: 2013-06-28 22:49+\n
+PO-Revision-Date: 2013-12-08 20:41+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\n
 MIME-Version: 1.0\n
@@ -207,7 +207,7 @@ msgstr 
 
 msgctxt LanguageCode
 msgid en
-msgstr 
+msgstr fil
 
 msgctxt FirefoxWarningPageTitle
 msgid Firefox is not installed

___
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-12-08 Thread translation
commit 564a329365f9a7f759835a74b8860387823dbb19
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:25 2013 +

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

diff --git a/fil/torlauncher.properties b/fil/torlauncher.properties
index 23d2d19..6227499 100644
--- a/fil/torlauncher.properties
+++ b/fil/torlauncher.properties
@@ -26,6 +26,6 @@
 # torlauncher.connect=Connect
 # torlauncher.quit=Quit
 torlauncher.quit_win=Labasan
-# torlauncher.done=Done
+torlauncher.done=Tapos na
 
 # 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/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2013-12-08 Thread translation
commit 51f1645bbdfc37025bda76b2edd2fdbed233baf4
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 20:46:30 2013 +

Update translations for tor-launcher-network-settings
---
 fil/network-settings.dtd |   84 +++---
 1 file changed, 42 insertions(+), 42 deletions(-)

diff --git a/fil/network-settings.dtd b/fil/network-settings.dtd
index 723a055..eda3cdd 100644
--- a/fil/network-settings.dtd
+++ b/fil/network-settings.dtd
@@ -1,55 +1,55 @@
-!ENTITY torsettings.dialog.title 
+!ENTITY torsettings.dialog.title Tor Network Settings
 
 !-- For first run wizard: --
 
-!ENTITY torsettings.prompt 
+!ENTITY torsettings.prompt Before the Tor Browser Bundle tries to connect to 
the Tor network, you need to provide information about this computer's Internet 
connection.
 
-!ENTITY torSettings.yes 
-!ENTITY torSettings.no 
+!ENTITY torSettings.yes Oo
+!ENTITY torSettings.no Wala
 
-!ENTITY torSettings.firstQuestion 
-!ENTITY torSettings.configurePrompt1 
-!ENTITY torSettings.configurePrompt2 
-!ENTITY torSettings.configure 
-!ENTITY torSettings.connectPrompt1 
-!ENTITY torSettings.connectPrompt2 
-!ENTITY torSettings.connect 
+!ENTITY torSettings.firstQuestion Which of the following best describes your 
situation?
+!ENTITY torSettings.configurePrompt1 This computer's Internet connection is 
censored, filtered, or proxied.
+!ENTITY torSettings.configurePrompt2 I need to configure network settings.
+!ENTITY torSettings.configure Configure
+!ENTITY torSettings.connectPrompt1 This computer's Internet connection is 
clear of obstacles.
+!ENTITY torSettings.connectPrompt2 I would like to connect directly to the 
Tor network.
+!ENTITY torSettings.connect Connect
 
-!ENTITY torSettings.proxyQuestion 
+!ENTITY torSettings.proxyQuestion Does this computer need to use a proxy to 
access the Internet?
 !-- see https://www.torproject.org/docs/proxychain.html.en --
-!ENTITY torSettings.proxyHelp 
-!ENTITY torSettings.enterProxy 
-!ENTITY torSettings.firewallQuestion 
-!ENTITY torSettings.firewallHelp 
-!ENTITY torSettings.enterFirewall 
-!ENTITY torSettings.bridgeQuestion 
+!ENTITY torSettings.proxyHelp If you are not sure how to answer this 
question, look at the Internet settings in another browser to see whether it is 
configured to use a proxy.
+!ENTITY torSettings.enterProxy Enter the proxy settings.
+!ENTITY torSettings.firewallQuestion Does this computer's Internet 
connection go through a firewall that only allows connections to certain 
ports?
+!ENTITY torSettings.firewallHelp If you are not sure how to answer this 
question, choose No. If you encounter problems connecting to the Tor network, 
change this setting.
+!ENTITY torSettings.enterFirewall Enter a comma-separated list of ports that 
are allowed by the firewall.
+!ENTITY torSettings.bridgeQuestion If this computer's Internet connection is 
censored, you will need to obtain and use bridge relays.amp;#160; If not, just 
click Connect.
 
 !-- Other: --
 
-!ENTITY torsettings.startingTor 
-!ENTITY torsettings.restart 
+!ENTITY torsettings.startingTor Waiting for Tor to start…
+!ENTITY torsettings.restart Restart
 
-!ENTITY torsettings.optional 
+!ENTITY torsettings.optional Optional
 
-!ENTITY torsettings.useProxy.checkbox 
-!ENTITY torsettings.useProxy.type 
-!ENTITY torsettings.useProxy.address 
-!ENTITY torsettings.useProxy.address.placeholder 
+!ENTITY torsettings.useProxy.checkbox This computer needs to use a proxy to 
access the Internet
+!ENTITY torsettings.useProxy.type Proxy Type:
+!ENTITY torsettings.useProxy.address Address:
+!ENTITY torsettings.useProxy.address.placeholder IP address or hostname
 !ENTITY torsettings.useProxy.port Port:
-!ENTITY torsettings.useProxy.username 
-!ENTITY torsettings.useProxy.password 
-!ENTITY torsettings.useProxy.type.socks4 
-!ENTITY torsettings.useProxy.type.socks5 
-!ENTITY torsettings.useProxy.type.http 
-!ENTITY torsettings.firewall.checkbox 
-!ENTITY torsettings.firewall.allowedPorts 
-!ENTITY torsettings.useBridges.checkbox 
-!ENTITY torsettings.useBridges.label 
-!ENTITY torsettings.useBridges.placeholder 
-
-!ENTITY torsettings.copyLog 
-!ENTITY torsettings.bridgeHelpTitle 
-!ENTITY torsettings.bridgeHelp1 
-!ENTITY torsettings.bridgeHelp2 
-!ENTITY torsettings.bridgeHelp3 
-!ENTITY torsettings.bridgeHelp4 
+!ENTITY torsettings.useProxy.username Username:
+!ENTITY torsettings.useProxy.password Password:
+!ENTITY torsettings.useProxy.type.socks4 SOCKS 4
+!ENTITY torsettings.useProxy.type.socks5 SOCKS 5
+!ENTITY torsettings.useProxy.type.http HTTP / HTTPS
+!ENTITY torsettings.firewall.checkbox This computer goes through a firewall 
that only allows connections to certain ports
+!ENTITY torsettings.firewall.allowedPorts Allowed Ports:
+!ENTITY torsettings.useBridges.checkbox My Internet Service Provider (ISP) 
blocks connections to the Tor network
+!ENTITY torsettings.useBridges.label Enter one or more bridge relays (one 
per line).
+!ENTITY 

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

2013-12-08 Thread translation
commit 6f4ccf8335081050dc2d8d642e2e1cfdd526f323
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 21:15:13 2013 +

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

diff --git a/fil/vidalia_fil.po b/fil/vidalia_fil.po
index 590fa00..197cce8 100644
--- a/fil/vidalia_fil.po
+++ b/fil/vidalia_fil.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-12-08 20:41+\n
+PO-Revision-Date: 2013-12-08 20:50+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\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/tails-greeter] Update translations for tails-greeter

2013-12-08 Thread translation
commit 65e7ceff25fc21e01ce28376e622554e6f94ecf9
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 21:16:07 2013 +

Update translations for tails-greeter
---
 fil/fil.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fil/fil.po b/fil/fil.po
index dcc1cdf..5bd54f7 100644
--- a/fil/fil.po
+++ b/fil/fil.po
@@ -8,7 +8,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2013-11-22 13:49+0100\n
-PO-Revision-Date: 2013-12-08 20:42+\n
+PO-Revision-Date: 2013-12-08 20:50+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\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-12-08 Thread translation
commit 2c6a196ba2fec276d47f7c6efa12af60e970b925
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 21:15:19 2013 +

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

diff --git a/fil/vidalia_fil.po b/fil/vidalia_fil.po
index 4913067..eca59ea 100644
--- a/fil/vidalia_fil.po
+++ b/fil/vidalia_fil.po
@@ -5,7 +5,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: translati...@vidalia-project.net\n
 POT-Creation-Date: 2012-03-21 17:46+\n
-PO-Revision-Date: 2013-12-08 20:41+\n
+PO-Revision-Date: 2013-12-08 20:50+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\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/mat-gui] Update translations for mat-gui

2013-12-08 Thread translation
commit 242b8dd764314951338568ebd0cf97817ef82e1b
Author: Translation commit bot translat...@torproject.org
Date:   Sun Dec 8 21:16:13 2013 +

Update translations for mat-gui
---
 fil.po |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fil.po b/fil.po
index f26b144..a62c0f4 100644
--- a/fil.po
+++ b/fil.po
@@ -9,7 +9,7 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n;
 POT-Creation-Date: 2013-07-01 19:26+0200\n
-PO-Revision-Date: 2013-12-08 20:42+\n
+PO-Revision-Date: 2013-12-08 20:50+\n
 Last-Translator: runasand runa.sand...@gmail.com\n
 Language-Team: Filipino 
(http://www.transifex.com/projects/p/torproject/language/fil/)\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] [goptlib/master] Change error returns in readSocks4aConnect.

2013-12-08 Thread dcf
commit 73569ea2f431a62ca6eb8746cdb6c21c18c18abc
Author: David Fifield da...@bamsoftware.com
Date:   Mon Dec 2 08:36:23 2013 -0800

Change error returns in readSocks4aConnect.
---
 socks/socks.go |   25 +++--
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/socks/socks.go b/socks/socks.go
index b82fba7..060f746 100644
--- a/socks/socks.go
+++ b/socks/socks.go
@@ -55,24 +55,26 @@ func AwaitSocks4aConnect(conn *net.TCPConn, connect 
func(string) (*net.TCPAddr,
 }
 
 // Read a SOCKS4a connect request. Returns a host:port string.
-func readSocks4aConnect(s io.Reader) (string, error) {
+func readSocks4aConnect(s io.Reader) (target string, err error) {
r := bufio.NewReader(s)
 
var h [8]byte
-   n, err := io.ReadFull(r, h[:])
+   _, err = io.ReadFull(r, h[:])
if err != nil {
-   return , errors.New(fmt.Sprintf(after %d bytes of SOCKS 
header: %s, n, err))
+   return
}
if h[0] != socksVersion {
-   return , errors.New(fmt.Sprintf(SOCKS header had version 
0x%02x, not 0x%02x, h[0], socksVersion))
+   err = errors.New(fmt.Sprintf(SOCKS header had version 0x%02x, 
not 0x%02x, h[0], socksVersion))
+   return
}
if h[1] != socksCmdConnect {
-   return , errors.New(fmt.Sprintf(SOCKS header had command 
0x%02x, not 0x%02x, h[1], socksCmdConnect))
+   err = errors.New(fmt.Sprintf(SOCKS header had command 0x%02x, 
not 0x%02x, h[1], socksCmdConnect))
+   return
}
 
_, err = r.ReadBytes('\x00')
if err != nil {
-   return , errors.New(fmt.Sprintf(reading SOCKS userid: %s, 
err))
+   return
}
 
var port int
@@ -80,9 +82,10 @@ func readSocks4aConnect(s io.Reader) (string, error) {
 
port = int(h[2])8 | int(h[3])0
if h[4] == 0  h[5] == 0  h[6] == 0  h[7] != 0 {
-   hostBytes, err := r.ReadBytes('\x00')
+   var hostBytes []byte
+   hostBytes, err = r.ReadBytes('\x00')
if err != nil {
-   return , errors.New(fmt.Sprintf(reading SOCKS4a 
destination: %s, err))
+   return
}
host = string(hostBytes[:len(hostBytes)-1])
} else {
@@ -90,10 +93,12 @@ func readSocks4aConnect(s io.Reader) (string, error) {
}
 
if r.Buffered() != 0 {
-   return , errors.New(fmt.Sprintf(%d bytes left after SOCKS 
header, r.Buffered()))
+   err = errors.New(fmt.Sprintf(%d bytes left after SOCKS 
header, r.Buffered()))
+   return
}
 
-   return fmt.Sprintf(%s:%d, host, port), nil
+   target = fmt.Sprintf(%s:%d, host, port)
+   return
 }
 
 // Send a SOCKS4a response with the given code and address.



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


[tor-commits] [goptlib/master] Return the username from readSocks4aConnect.

2013-12-08 Thread dcf
commit d58b6b6ef27edf4de034f99e62d51bcb753e9d5a
Author: David Fifield da...@bamsoftware.com
Date:   Mon Dec 2 08:58:34 2013 -0800

Return the username from readSocks4aConnect.
---
 socks/socks.go |7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/socks/socks.go b/socks/socks.go
index 8d2e870..8726ceb 100644
--- a/socks/socks.go
+++ b/socks/socks.go
@@ -21,7 +21,8 @@ const (
 )
 
 type Request struct {
-   Target string
+   Username string
+   Target   string
 }
 
 // Read a SOCKS4a connect request, and call the given connect callback with the
@@ -76,10 +77,12 @@ func readSocks4aConnect(s io.Reader) (req Request, err 
error) {
return
}
 
-   _, err = r.ReadBytes('\x00')
+   var usernameBytes []byte
+   usernameBytes, err = r.ReadBytes('\x00')
if err != nil {
return
}
+   req.Username = string(usernameBytes[:len(usernameBytes)-1])
 
var port int
var host string



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


[tor-commits] [goptlib/master] Encapsulate SOCKS request information in a Request struct.

2013-12-08 Thread dcf
commit 9b3e369ce561f15ac433c5f8d53ef2874489dd1d
Author: David Fifield da...@bamsoftware.com
Date:   Mon Dec 2 08:40:05 2013 -0800

Encapsulate SOCKS request information in a Request struct.
---
 socks/socks.go |   14 +-
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/socks/socks.go b/socks/socks.go
index 060f746..8d2e870 100644
--- a/socks/socks.go
+++ b/socks/socks.go
@@ -20,6 +20,10 @@ const (
socksRequestFailed   = 0x5b
 )
 
+type Request struct {
+   Target string
+}
+
 // Read a SOCKS4a connect request, and call the given connect callback with the
 // requested destination string. If the callback returns an error, sends a 
SOCKS
 // request failed message. Otherwise, sends a SOCKS request granted message for
@@ -40,12 +44,12 @@ const (
 // defer remote.Close()
 // copyLoop(local, remote)
 func AwaitSocks4aConnect(conn *net.TCPConn, connect func(string) 
(*net.TCPAddr, error)) error {
-   dest, err := readSocks4aConnect(conn)
+   req, err := readSocks4aConnect(conn)
if err != nil {
sendSocks4aResponseFailed(conn)
return err
}
-   destAddr, err := connect(dest)
+   destAddr, err := connect(req.Target)
if err != nil {
sendSocks4aResponseFailed(conn)
return err
@@ -54,8 +58,8 @@ func AwaitSocks4aConnect(conn *net.TCPConn, connect 
func(string) (*net.TCPAddr,
return nil
 }
 
-// Read a SOCKS4a connect request. Returns a host:port string.
-func readSocks4aConnect(s io.Reader) (target string, err error) {
+// Read a SOCKS4a connect request. Returns a Request.
+func readSocks4aConnect(s io.Reader) (req Request, err error) {
r := bufio.NewReader(s)
 
var h [8]byte
@@ -97,7 +101,7 @@ func readSocks4aConnect(s io.Reader) (target string, err 
error) {
return
}
 
-   target = fmt.Sprintf(%s:%d, host, port)
+   req.Target = fmt.Sprintf(%s:%d, host, port)
return
 }
 



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


[tor-commits] [goptlib/master] Convert IP to IPv4 before writing it in SOCKS response.

2013-12-08 Thread dcf
commit 7cbdfa4c1514b9667101b9e7fb6c7682de157ff3
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 21:26:15 2013 -0800

Convert IP to IPv4 before writing it in SOCKS response.

This was a bug; if the IP was a 16-byte slice, then we would read the
first four bytes, which were zero. Document that address families other
than IPv4 fill the four address bytes with zero, so that we sort of work
with IPv6.
---
 socks.go |   15 ++-
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/socks.go b/socks.go
index a5889fa..8534636 100644
--- a/socks.go
+++ b/socks.go
@@ -161,17 +161,22 @@ func readSocks4aConnect(s io.Reader) (req SocksRequest, 
err error) {
return
 }
 
-// Send a SOCKS4a response with the given code and address.
+// Send a SOCKS4a response with the given code and address. If the IP field
+// inside addr is not an IPv4 address, the IP portion of the response will be
+// four zero bytes.
 func sendSocks4aResponse(w io.Writer, code byte, addr *net.TCPAddr) error {
var resp [8]byte
resp[0] = socksResponseVersion
resp[1] = code
resp[2] = byte((addr.Port  8)  0xff)
resp[3] = byte((addr.Port  0)  0xff)
-   resp[4] = addr.IP[0]
-   resp[5] = addr.IP[1]
-   resp[6] = addr.IP[2]
-   resp[7] = addr.IP[3]
+   ipv4 := addr.IP.To4()
+   if ipv4 != nil {
+   resp[4] = ipv4[0]
+   resp[5] = ipv4[1]
+   resp[6] = ipv4[2]
+   resp[7] = ipv4[3]
+   }
_, err := w.Write(resp[:])
return err
 }



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


[tor-commits] [goptlib/master] Move socks code into the pt package.

2013-12-08 Thread dcf
commit 37be077e66cbff6403e054b2351e2eab3037a292
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 20:50:27 2013 -0800

Move socks code into the pt package.
---
 examples/dummy-client/dummy-client.go |7 +-
 pt.go |9 +-
 socks.go  |  189 +
 socks/socks.go|  183 ---
 socks/socks_test.go   |  113 
 socks_test.go |  109 +++
 6 files changed, 308 insertions(+), 302 deletions(-)

diff --git a/examples/dummy-client/dummy-client.go 
b/examples/dummy-client/dummy-client.go
index 10f7b8b..de56d99 100644
--- a/examples/dummy-client/dummy-client.go
+++ b/examples/dummy-client/dummy-client.go
@@ -20,7 +20,6 @@ import (
 )
 
 import git.torproject.org/pluggable-transports/goptlib.git
-import git.torproject.org/pluggable-transports/goptlib.git/socks
 
 var ptInfo pt.ClientInfo
 
@@ -44,7 +43,7 @@ func copyLoop(a, b net.Conn) {
wg.Wait()
 }
 
-func handleConnection(local *socks.Conn) error {
+func handleConnection(local *pt.SocksConn) error {
defer local.Close()
 
handlerChan - 1
@@ -68,7 +67,7 @@ func handleConnection(local *socks.Conn) error {
return nil
 }
 
-func acceptLoop(ln *socks.Listener) error {
+func acceptLoop(ln *pt.SocksListener) error {
for {
conn, err := ln.AcceptSocks()
if err != nil {
@@ -80,7 +79,7 @@ func acceptLoop(ln *socks.Listener) error {
 }
 
 func startListener(addr string) (net.Listener, error) {
-   ln, err := socks.Listen(tcp, addr)
+   ln, err := pt.ListenSocks(tcp, addr)
if err != nil {
return nil, err
}
diff --git a/pt.go b/pt.go
index 86632d9..ddecc29 100644
--- a/pt.go
+++ b/pt.go
@@ -8,15 +8,15 @@
 // os.Exit(1)
 // }
 // for _, methodName := range ptInfo.MethodNames {
-// ln, err := startSocksListener()
+// ln, err := pt.ListenSocks(tcp, 127.0.0.1:0)
 // if err != nil {
 // pt.CmethodError(methodName, err.Error())
 // continue
 // }
+// go acceptLoop(ln)
 // pt.Cmethod(methodName, socks4, ln.Addr())
 // }
 // pt.CmethodsDone()
-// See the socks package for help with writing a SOCKS listener.
 //
 // Sample server usage:
 // func handler(conn net.Conn) {
@@ -48,6 +48,11 @@
 //
 // Extended ORPort Authentication:
 // 
https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/217-ext-orport-auth.txt.
+//
+// The package implements a SOCKS4a server sufficient for a Tor client 
transport
+// plugin.
+//
+// http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol
 package pt
 
 import (
diff --git a/socks.go b/socks.go
new file mode 100644
index 000..a5889fa
--- /dev/null
+++ b/socks.go
@@ -0,0 +1,189 @@
+package pt
+
+import (
+   bufio
+   errors
+   fmt
+   io
+   net
+)
+
+const (
+   socksVersion = 0x04
+   socksCmdConnect  = 0x01
+   socksResponseVersion = 0x00
+   socksRequestGranted  = 0x5a
+   socksRequestRejected = 0x5b
+)
+
+// SocksRequest describes a SOCKS request.
+type SocksRequest struct {
+   Username string
+   Target   string
+}
+
+// SocksConn encapsulates a net.Conn and information associated with a SOCKS 
request.
+type SocksConn struct {
+   net.Conn
+   Req SocksRequest
+}
+
+// Send a message to the proxy client that access to the given address is
+// granted.
+func (conn *SocksConn) Grant(addr *net.TCPAddr) error {
+   return sendSocks4aResponseGranted(conn, addr)
+}
+
+// Send a message to the proxy client that access was rejected or failed.
+func (conn *SocksConn) Reject() error {
+   return sendSocks4aResponseRejected(conn)
+}
+
+// SocksListener wraps a net.Listener in order to read a SOCKS request on 
Accept.
+//
+// func handleConn(conn *pt.SocksConn) error {
+// defer conn.Close()
+//
+// remote, err := net.Dial(tcp, conn.Req.Target)
+// if err != nil {
+// conn.Reject()
+// return err
+// }
+// err = conn.Grant(remote.RemoteAddr().(*net.TCPAddr))
+// if err != nil {
+// return err
+// }
+// defer remote.Close()
+//
+// // do something with conn and remote
+// }
+// ...
+// ln, err := pt.ListenSocks(tcp, 127.0.0.1:0)
+// if err != nil {
+// panic(err.Error())
+// }
+// for {
+// conn, err := ln.AcceptSocks()
+// if err != nil {
+// break
+// }
+// go handleConn(conn)
+// }
+type SocksListener struct {
+   net.Listener
+}
+
+// Open a net.Listener according to network and laddr, and return it as a
+// 

[tor-commits] [goptlib/master] Comment for socks.Request.

2013-12-08 Thread dcf
commit 96be3371bc98dc21b9e60f23d0e43b514cad0b7c
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 01:21:57 2013 -0800

Comment for socks.Request.
---
 socks/socks.go |1 +
 1 file changed, 1 insertion(+)

diff --git a/socks/socks.go b/socks/socks.go
index 04b7ccd..450c409 100644
--- a/socks/socks.go
+++ b/socks/socks.go
@@ -39,6 +39,7 @@ const (
socksRequestRejected = 0x5b
 )
 
+// Request describes a SOCKS request.
 type Request struct {
Username string
Target   string



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


[tor-commits] [goptlib/master] More consistent style.

2013-12-08 Thread dcf
commit 2919f2cb00a8adcfa518438d69b149febbff0ee7
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 21:40:10 2013 -0800

More consistent style.
---
 examples/dummy-client/dummy-client.go |   27 +--
 examples/dummy-server/dummy-server.go |   22 ++
 pt.go |3 ++-
 socks.go  |5 +++--
 4 files changed, 24 insertions(+), 33 deletions(-)

diff --git a/examples/dummy-client/dummy-client.go 
b/examples/dummy-client/dummy-client.go
index de56d99..9497f99 100644
--- a/examples/dummy-client/dummy-client.go
+++ b/examples/dummy-client/dummy-client.go
@@ -43,26 +43,25 @@ func copyLoop(a, b net.Conn) {
wg.Wait()
 }
 
-func handleConnection(local *pt.SocksConn) error {
-   defer local.Close()
-
+func handleConnection(conn *pt.SocksConn) error {
handlerChan - 1
defer func() {
handlerChan - -1
}()
 
-   remote, err := net.Dial(tcp, local.Req.Target)
+   defer conn.Close()
+   remote, err := net.Dial(tcp, conn.Req.Target)
if err != nil {
-   local.Reject()
+   conn.Reject()
return err
}
-   err = local.Grant(remote.RemoteAddr().(*net.TCPAddr))
+   defer remote.Close()
+   err = conn.Grant(remote.RemoteAddr().(*net.TCPAddr))
if err != nil {
return err
}
 
-   defer remote.Close()
-   copyLoop(local, remote)
+   copyLoop(conn, remote)
 
return nil
 }
@@ -78,15 +77,6 @@ func acceptLoop(ln *pt.SocksListener) error {
return nil
 }
 
-func startListener(addr string) (net.Listener, error) {
-   ln, err := pt.ListenSocks(tcp, addr)
-   if err != nil {
-   return nil, err
-   }
-   go acceptLoop(ln)
-   return ln, nil
-}
-
 func main() {
var err error
 
@@ -97,11 +87,12 @@ func main() {
 
listeners := make([]net.Listener, 0)
for _, methodName := range ptInfo.MethodNames {
-   ln, err := startListener(127.0.0.1:0)
+   ln, err := pt.ListenSocks(tcp, 127.0.0.1:0)
if err != nil {
pt.CmethodError(methodName, err.Error())
continue
}
+   go acceptLoop(ln)
pt.Cmethod(methodName, socks4, ln.Addr())
listeners = append(listeners, ln)
}
diff --git a/examples/dummy-server/dummy-server.go 
b/examples/dummy-server/dummy-server.go
index 0518737..7341b17 100644
--- a/examples/dummy-server/dummy-server.go
+++ b/examples/dummy-server/dummy-server.go
@@ -44,7 +44,9 @@ func copyLoop(a, b net.Conn) {
wg.Wait()
 }
 
-func handleConnection(conn net.Conn) {
+func handleConnection(conn net.Conn) error {
+   defer conn.Close()
+
handlerChan - 1
defer func() {
handlerChan - -1
@@ -52,9 +54,13 @@ func handleConnection(conn net.Conn) {
 
or, err := pt.ConnectOr(ptInfo, conn.RemoteAddr(), dummy)
if err != nil {
-   return
+   return err
}
+   defer or.Close()
+
copyLoop(conn, or)
+
+   return nil
 }
 
 func acceptLoop(ln net.Listener) error {
@@ -68,15 +74,6 @@ func acceptLoop(ln net.Listener) error {
return nil
 }
 
-func startListener(addr *net.TCPAddr) (net.Listener, error) {
-   ln, err := net.ListenTCP(tcp, addr)
-   if err != nil {
-   return nil, err
-   }
-   go acceptLoop(ln)
-   return ln, nil
-}
-
 func main() {
var err error
 
@@ -87,11 +84,12 @@ func main() {
 
listeners := make([]net.Listener, 0)
for _, bindaddr := range ptInfo.Bindaddrs {
-   ln, err := startListener(bindaddr.Addr)
+   ln, err := net.ListenTCP(tcp, bindaddr.Addr)
if err != nil {
pt.SmethodError(bindaddr.MethodName, err.Error())
continue
}
+   go acceptLoop(ln)
pt.Smethod(bindaddr.MethodName, ln.Addr())
listeners = append(listeners, ln)
}
diff --git a/pt.go b/pt.go
index ddecc29..345a7bd 100644
--- a/pt.go
+++ b/pt.go
@@ -34,11 +34,12 @@
 // os.Exit(1)
 // }
 // for _, bindaddr := range ptInfo.Bindaddrs {
-// ln, err := startListener(bindaddr.Addr, bindaddr.MethodName)
+// ln, err := net.ListenTCP(tcp, bindaddr.Addr)
 // if err != nil {
 // pt.SmethodError(bindaddr.MethodName, err.Error())
 // continue
 // }
+// go acceptLoop(ln)
 // pt.Smethod(bindaddr.MethodName, ln.Addr())
 // }
 // pt.SmethodsDone()
diff --git a/socks.go b/socks.go
index 8534636..c982c7a 100644
--- a/socks.go
+++ b/socks.go
@@ -43,19 +43,20 @@ func (conn *SocksConn) Reject() error {
 //
 // func handleConn(conn *pt.SocksConn) 

[tor-commits] [goptlib/master] Change failed to rejected.

2013-12-08 Thread dcf
commit 8ac7286c2e4ef1a35a384d1e43e74d2e347fbab2
Author: David Fifield da...@bamsoftware.com
Date:   Wed Dec 4 23:22:22 2013 -0800

Change failed to rejected.
---
 socks/socks.go |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/socks/socks.go b/socks/socks.go
index 8726ceb..0cbbba8 100644
--- a/socks/socks.go
+++ b/socks/socks.go
@@ -17,7 +17,7 @@ const (
socksCmdConnect  = 0x01
socksResponseVersion = 0x00
socksRequestGranted  = 0x5a
-   socksRequestFailed   = 0x5b
+   socksRequestRejected = 0x5b
 )
 
 type Request struct {
@@ -47,12 +47,12 @@ type Request struct {
 func AwaitSocks4aConnect(conn *net.TCPConn, connect func(string) 
(*net.TCPAddr, error)) error {
req, err := readSocks4aConnect(conn)
if err != nil {
-   sendSocks4aResponseFailed(conn)
+   sendSocks4aResponseRejected(conn)
return err
}
destAddr, err := connect(req.Target)
if err != nil {
-   sendSocks4aResponseFailed(conn)
+   sendSocks4aResponseRejected(conn)
return err
}
sendSocks4aResponseGranted(conn, destAddr)
@@ -131,6 +131,6 @@ func sendSocks4aResponseGranted(w io.Writer, addr 
*net.TCPAddr) error {
 }
 
 // Send a SOCKS4a response code 0x5b (with an all-zero address).
-func sendSocks4aResponseFailed(w io.Writer) error {
-   return sendSocks4aResponse(w, socksRequestFailed, emptyAddr)
+func sendSocks4aResponseRejected(w io.Writer) error {
+   return sendSocks4aResponse(w, socksRequestRejected, emptyAddr)
 }



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


[tor-commits] [goptlib/master] Unexpose Line, EnvError, and VersionError.

2013-12-08 Thread dcf
commit 1428ea38330bd18c1068db6deb2e9248e269ad8c
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 22:14:09 2013 -0800

Unexpose Line, EnvError, and VersionError.
---
 pt.go |   40 
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/pt.go b/pt.go
index bd715c0..18c3b73 100644
--- a/pt.go
+++ b/pt.go
@@ -164,7 +164,7 @@ type ptErr struct {
 
 // Implements the error interface.
 func (err *ptErr) Error() string {
-   return formatLine(err.Keyword, err.Args...)
+   return formatline(err.Keyword, err.Args...)
 }
 
 func getenv(key string) string {
@@ -175,7 +175,7 @@ func getenv(key string) string {
 func getenvRequired(key string) (string, error) {
value := os.Getenv(key)
if value ==  {
-   return , EnvError(fmt.Sprintf(no %s environment variable, 
key))
+   return , envError(fmt.Sprintf(no %s environment variable, 
key))
}
return value, nil
 }
@@ -198,7 +198,7 @@ func escape(s string) string {
return buf.String()
 }
 
-func formatLine(keyword string, v ...string) string {
+func formatline(keyword string, v ...string) string {
var buf bytes.Buffer
buf.WriteString(keyword)
for _, x := range v {
@@ -209,25 +209,25 @@ func formatLine(keyword string, v ...string) string {
 
 // Print a pluggable transports protocol line to Stdout. The line consists of 
an
 // unescaped keyword, followed by any number of escaped strings.
-func Line(keyword string, v ...string) {
-   fmt.Fprintln(Stdout, formatLine(keyword, v...))
+func line(keyword string, v ...string) {
+   fmt.Fprintln(Stdout, formatline(keyword, v...))
 }
 
 // Emit and return the given error as a ptErr.
 func doError(keyword string, v ...string) *ptErr {
-   Line(keyword, v...)
+   line(keyword, v...)
return ptErr{keyword, v}
 }
 
 // Emit an ENV-ERROR line with explanation text. Returns a representation of 
the
 // error.
-func EnvError(msg string) error {
+func envError(msg string) error {
return doError(ENV-ERROR, msg)
 }
 
 // Emit a VERSION-ERROR line with explanation text. Returns a representation of
 // the error.
-func VersionError(msg string) error {
+func versionError(msg string) error {
return doError(VERSION-ERROR, msg)
 }
 
@@ -246,22 +246,22 @@ func SmethodError(methodName, msg string) error {
 // Emit a CMETHOD line. socks must be socks4 or socks5. Call this once for
 // each listening client SOCKS port.
 func Cmethod(name string, socks string, addr net.Addr) {
-   Line(CMETHOD, name, socks, addr.String())
+   line(CMETHOD, name, socks, addr.String())
 }
 
 // Emit a CMETHODS DONE line. Call this after opening all client listeners.
 func CmethodsDone() {
-   Line(CMETHODS, DONE)
+   line(CMETHODS, DONE)
 }
 
 // Emit an SMETHOD line. Call this once for each listening server port.
 func Smethod(name string, addr net.Addr) {
-   Line(SMETHOD, name, addr.String())
+   line(SMETHOD, name, addr.String())
 }
 
 // Emit an SMETHODS DONE line. Call this after opening all server listeners.
 func SmethodsDone() {
-   Line(SMETHODS, DONE)
+   line(SMETHODS, DONE)
 }
 
 // Get a pluggable transports version offered by Tor and understood by us, if
@@ -278,7 +278,7 @@ func getManagedTransportVer() (string, error) {
return offered, nil
}
}
-   return , VersionError(no-version)
+   return , versionError(no-version)
 }
 
 // Get the intersection of the method names offered by Tor and those in
@@ -320,7 +320,7 @@ func ClientSetup(methodNames []string) (ClientInfo, error) {
if err != nil {
return info, err
}
-   Line(VERSION, ver)
+   line(VERSION, ver)
 
info.MethodNames, err = getClientTransports(methodNames)
if err != nil {
@@ -406,12 +406,12 @@ func getServerBindaddrs(methodNames []string) 
([]Bindaddr, error) {
 
parts := strings.SplitN(spec, -, 2)
if len(parts) != 2 {
-   return nil, 
EnvError(fmt.Sprintf(TOR_PT_SERVER_BINDADDR: %q: doesn't contain \-\, spec))
+   return nil, 
envError(fmt.Sprintf(TOR_PT_SERVER_BINDADDR: %q: doesn't contain \-\, spec))
}
bindaddr.MethodName = parts[0]
addr, err := resolveAddr(parts[1])
if err != nil {
-   return nil, 
EnvError(fmt.Sprintf(TOR_PT_SERVER_BINDADDR: %q: %s, spec, err.Error()))
+   return nil, 
envError(fmt.Sprintf(TOR_PT_SERVER_BINDADDR: %q: %s, spec, err.Error()))
}
bindaddr.Addr = addr
result = append(result, bindaddr)
@@ -489,7 +489,7 @@ func ServerSetup(methodNames []string) (ServerInfo, error) {
if err != nil {
return info, err
}
-   Line(VERSION, ver)
+   line(VERSION, ver)
 
orPort, err := 

[tor-commits] [goptlib/master] fmt

2013-12-08 Thread dcf
commit 6705184f0988bf54eeb0118b2022587b7a9c7015
Author: David Fifield da...@bamsoftware.com
Date:   Wed Dec 4 23:21:56 2013 -0800

fmt
---
 pt_test.go |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pt_test.go b/pt_test.go
index 6dc8845..6da0322 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -475,7 +475,7 @@ func TestExtOrSendUserAddr(t *testing.T) {
 func TestExtOrPortSendTransport(t *testing.T) {
tests := [...]struct {
methodName string
-   expected []byte
+   expected   []byte
}{
{, []byte(\x00\x02\x00\x00)},
{a, []byte(\x00\x02\x00\x01a)},
@@ -529,9 +529,9 @@ func TestExtOrPortRecvCommand(t *testing.T) {
[]byte(\x12\x34\x00\x01),
}
goodTests := [...]struct {
-   input []byte
-   cmd uint16
-   body []byte
+   input[]byte
+   cmd  uint16
+   body []byte
leftover []byte
}{
{



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


[tor-commits] [goptlib/master] Implement socks as a Listener.

2013-12-08 Thread dcf
commit a0eeefa02086248e7253ba3c1cf4780c1cfe69da
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 01:21:04 2013 -0800

Implement socks as a Listener.
---
 examples/dummy-client/dummy-client.go |   25 
 socks/socks.go|  102 -
 2 files changed, 85 insertions(+), 42 deletions(-)

diff --git a/examples/dummy-client/dummy-client.go 
b/examples/dummy-client/dummy-client.go
index 783788a..10f7b8b 100644
--- a/examples/dummy-client/dummy-client.go
+++ b/examples/dummy-client/dummy-client.go
@@ -44,7 +44,7 @@ func copyLoop(a, b net.Conn) {
wg.Wait()
 }
 
-func handleConnection(local net.Conn) error {
+func handleConnection(local *socks.Conn) error {
defer local.Close()
 
handlerChan - 1
@@ -52,28 +52,25 @@ func handleConnection(local net.Conn) error {
handlerChan - -1
}()
 
-   var remote net.Conn
-   err := socks.AwaitSocks4aConnect(local.(*net.TCPConn), func(dest 
string) (*net.TCPAddr, error) {
-   var err error
-   // set remote in outer function environment
-   remote, err = net.Dial(tcp, dest)
-   if err != nil {
-   return nil, err
-   }
-   return remote.RemoteAddr().(*net.TCPAddr), nil
-   })
+   remote, err := net.Dial(tcp, local.Req.Target)
+   if err != nil {
+   local.Reject()
+   return err
+   }
+   err = local.Grant(remote.RemoteAddr().(*net.TCPAddr))
if err != nil {
return err
}
+
defer remote.Close()
copyLoop(local, remote)
 
return nil
 }
 
-func acceptLoop(ln net.Listener) error {
+func acceptLoop(ln *socks.Listener) error {
for {
-   conn, err := ln.Accept()
+   conn, err := ln.AcceptSocks()
if err != nil {
return err
}
@@ -83,7 +80,7 @@ func acceptLoop(ln net.Listener) error {
 }
 
 func startListener(addr string) (net.Listener, error) {
-   ln, err := net.Listen(tcp, addr)
+   ln, err := socks.Listen(tcp, addr)
if err != nil {
return nil, err
}
diff --git a/socks/socks.go b/socks/socks.go
index 0cbbba8..04b7ccd 100644
--- a/socks/socks.go
+++ b/socks/socks.go
@@ -1,6 +1,25 @@
 // Package socks implements a SOCKS4a server sufficient for a Tor client
 // transport plugin.
 //
+// ln, err := socks.Listen(tcp, :3128)
+// if err != nil {
+// return err
+// }
+// conn, err := ln.AcceptSocks()
+// if err != nil {
+// return err
+// }
+// defer conn.Close()
+// remote, err := net.Dial(tcp, local.Req.Target)
+// if err != nil {
+// local.Reject()
+// return err
+// }
+// err = local.Grant(remote.RemoteAddr().(*net.TCPAddr))
+// if err != nil {
+// return err
+// }
+//
 // http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol
 package socks
 
@@ -25,38 +44,65 @@ type Request struct {
Target   string
 }
 
-// Read a SOCKS4a connect request, and call the given connect callback with the
-// requested destination string. If the callback returns an error, sends a 
SOCKS
-// request failed message. Otherwise, sends a SOCKS request granted message for
-// the destination address returned by the callback.
-// var remote net.Conn
-// err := socks.AwaitSocks4aConnect(local.(*net.TCPConn), func(dest 
string) (*net.TCPAddr, error) {
-// var err error
-// // set remote in outer function environment
-// remote, err = net.Dial(tcp, dest)
-// if err != nil {
-// return nil, err
-// }
-// return remote.RemoteAddr().(*net.TCPAddr), nil
-// })
-// if err != nil {
-// return err
-// }
-// defer remote.Close()
-// copyLoop(local, remote)
-func AwaitSocks4aConnect(conn *net.TCPConn, connect func(string) 
(*net.TCPAddr, error)) error {
-   req, err := readSocks4aConnect(conn)
+// Conn encapsulates a net.Conn and information associated with a SOCKS 
request.
+type Conn struct {
+   net.Conn
+   Req Request
+}
+
+// Send a message to the proxy client that access to the given address is
+// granted.
+func (conn *Conn) Grant(addr *net.TCPAddr) error {
+   return sendSocks4aResponseGranted(conn, addr)
+}
+
+// Send a message to the proxy client that access was rejected or failed.
+func (conn *Conn) Reject() error {
+   return sendSocks4aResponseRejected(conn)
+}
+
+// Listener wraps a net.Listener in order to read a SOCKS request on Accept.
+type Listener struct {
+   net.Listener
+}
+
+// Open a net.Listener according to network and laddr, and return it as a
+// Listener.
+func Listen(network, laddr string) (*Listener, error) {
+   ln, err := net.Listen(network, laddr)
+   if err != nil {
+   

[tor-commits] [goptlib/master] Add tests for sendSocks4aResponse.

2013-12-08 Thread dcf
commit 8821313485f1da2281b7763991a8042303630cbd
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 21:25:34 2013 -0800

Add tests for sendSocks4aResponse.
---
 socks_test.go |   37 +
 1 file changed, 37 insertions(+)

diff --git a/socks_test.go b/socks_test.go
index bb638b5..2fb8a8c 100644
--- a/socks_test.go
+++ b/socks_test.go
@@ -107,3 +107,40 @@ func TestReadSocks4aConnect(t *testing.T) {
}
}
 }
+
+func TestSendSocks4aResponse(t *testing.T) {
+   tests := [...]struct {
+   code byte
+   addr net.TCPAddr
+   expected []byte
+   }{
+   {
+   socksRequestGranted,
+   net.TCPAddr{IP: net.ParseIP(1.2.3.4), Port: 0x1234},
+   []byte(\x00\x5a\x12\x34\x01\x02\x03\x04),
+   },
+   {
+   socksRequestRejected,
+   net.TCPAddr{IP: net.ParseIP(1:2::3:4), Port: 0x1234},
+   []byte(\x00\x5b\x12\x34\x00\x00\x00\x00),
+   },
+   }
+
+   for _, test := range tests {
+   var buf bytes.Buffer
+   err := sendSocks4aResponse(buf, test.code, test.addr)
+   if err != nil {
+   t.Errorf(0x%02x %s unexpectedly returned an error: 
%s, test.code, test.addr, err)
+   }
+   p := make([]byte, 1024)
+   n, err := buf.Read(p)
+   if err != nil {
+   t.Fatal(err)
+   }
+   output := p[:n]
+   if !bytes.Equal(output, test.expected) {
+   t.Errorf(0x%02x %s → %v (expected %v),
+   test.code, test.addr, output, test.expected)
+   }
+   }
+}



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


[tor-commits] [goptlib/master] Comment SocksRequest members.

2013-12-08 Thread dcf
commit 96cbb3ae4e8f0252b59a31f3a26951230df78ac7
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 22:18:23 2013 -0800

Comment SocksRequest members.
---
 socks.go |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/socks.go b/socks.go
index 6cbecc6..2ae1c5e 100644
--- a/socks.go
+++ b/socks.go
@@ -18,8 +18,10 @@ const (
 
 // SocksRequest describes a SOCKS request.
 type SocksRequest struct {
+   // The userid string sent by the client.
Username string
-   Target   string
+   // The endpoint requested by the client as a host:port string.
+   Target string
 }
 
 // SocksConn encapsulates a net.Conn and information associated with a SOCKS 
request.



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


[tor-commits] [goptlib/master] No need for a bufio Reader in extOrPortAuthenticate.

2013-12-08 Thread dcf
commit 6e6cc5c70c9f11f9016e892e751212d3c20c8b51
Author: David Fifield da...@bamsoftware.com
Date:   Mon Dec 2 08:52:05 2013 -0800

No need for a bufio Reader in extOrPortAuthenticate.
---
 pt.go |   17 ++---
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/pt.go b/pt.go
index c2a5d8c..f858c2a 100644
--- a/pt.go
+++ b/pt.go
@@ -51,7 +51,6 @@
 package pt
 
 import (
-   bufio
bytes
crypto/hmac
crypto/rand
@@ -490,16 +489,16 @@ func computeClientHash(authCookie, clientNonce, 
serverNonce []byte) []byte {
 }
 
 func extOrPortAuthenticate(s io.ReadWriter, info *ServerInfo) error {
-   r := bufio.NewReader(s)
-
// Read auth types. 217-ext-orport-auth.txt section 4.1.
var authTypes [256]bool
var count int
for count = 0; count  256; count++ {
-   b, err := r.ReadByte()
+   buf := make([]byte, 1)
+   _, err := io.ReadFull(s, buf)
if err != nil {
return err
}
+   b := buf[0]
if b == 0 {
break
}
@@ -532,11 +531,11 @@ func extOrPortAuthenticate(s io.ReadWriter, info 
*ServerInfo) error {
return err
}
 
-   _, err = io.ReadFull(r, serverHash)
+   _, err = io.ReadFull(s, serverHash)
if err != nil {
return err
}
-   _, err = io.ReadFull(r, serverNonce)
+   _, err = io.ReadFull(s, serverNonce)
if err != nil {
return err
}
@@ -553,7 +552,7 @@ func extOrPortAuthenticate(s io.ReadWriter, info 
*ServerInfo) error {
}
 
status := make([]byte, 1)
-   _, err = io.ReadFull(r, status)
+   _, err = io.ReadFull(s, status)
if err != nil {
return err
}
@@ -561,10 +560,6 @@ func extOrPortAuthenticate(s io.ReadWriter, info 
*ServerInfo) error {
return errors.New(fmt.Sprintf(server rejected authentication))
}
 
-   if r.Buffered() != 0 {
-   return errors.New(fmt.Sprintf(%d bytes left after extended OR 
port authentication, r.Buffered()))
-   }
-
return nil
 }
 



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


[tor-commits] [goptlib/master] Fuller client and server examples.

2013-12-08 Thread dcf
commit 12340199b5c80b1d97f928d42b42a6f01ae8988d
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 21:58:20 2013 -0800

Fuller client and server examples.
---
 examples/dummy-client/dummy-client.go |4 +-
 examples/dummy-server/dummy-server.go |4 +-
 pt.go |   98 -
 3 files changed, 77 insertions(+), 29 deletions(-)

diff --git a/examples/dummy-client/dummy-client.go 
b/examples/dummy-client/dummy-client.go
index f619e7c..876fc87 100644
--- a/examples/dummy-client/dummy-client.go
+++ b/examples/dummy-client/dummy-client.go
@@ -43,7 +43,7 @@ func copyLoop(a, b net.Conn) {
wg.Wait()
 }
 
-func handleConnection(conn *pt.SocksConn) error {
+func handler(conn *pt.SocksConn) error {
handlerChan - 1
defer func() {
handlerChan - -1
@@ -72,7 +72,7 @@ func acceptLoop(ln *pt.SocksListener) error {
if err != nil {
return err
}
-   go handleConnection(conn)
+   go handler(conn)
}
return nil
 }
diff --git a/examples/dummy-server/dummy-server.go 
b/examples/dummy-server/dummy-server.go
index 7341b17..0ca901c 100644
--- a/examples/dummy-server/dummy-server.go
+++ b/examples/dummy-server/dummy-server.go
@@ -44,7 +44,7 @@ func copyLoop(a, b net.Conn) {
wg.Wait()
 }
 
-func handleConnection(conn net.Conn) error {
+func handler(conn net.Conn) error {
defer conn.Close()
 
handlerChan - 1
@@ -69,7 +69,7 @@ func acceptLoop(ln net.Listener) error {
if err != nil {
return err
}
-   go handleConnection(conn)
+   go handler(conn)
}
return nil
 }
diff --git a/pt.go b/pt.go
index 45dc795..bd715c0 100644
--- a/pt.go
+++ b/pt.go
@@ -2,47 +2,95 @@
 //
 // Sample client usage:
 // var ptInfo pt.ClientInfo
-// var err error
-// ptInfo, err = pt.ClientSetup([]string{foo})
-// if err != nil {
-// os.Exit(1)
+// ...
+// func handler(conn *pt.SocksConn) error {
+// defer conn.Close()
+// remote, err := net.Dial(tcp, conn.Req.Target)
+// if err != nil {
+// conn.Reject()
+// return err
+// }
+// defer remote.Close()
+// err = conn.Grant(remote.RemoteAddr().(*net.TCPAddr))
+// if err != nil {
+// return err
+// }
+// // do something with conn and or.
+// return nil
 // }
-// for _, methodName := range ptInfo.MethodNames {
-// ln, err := pt.ListenSocks(tcp, 127.0.0.1:0)
+// func acceptLoop(ln *pt.SocksListener) error {
+// for {
+// conn, err := ln.AcceptSocks()
+// if err != nil {
+// return err
+// }
+// go handler(conn)
+// }
+// return nil
+// }
+// ...
+// func main() {
+// var err error
+// ptInfo, err = pt.ClientSetup([]string{foo})
 // if err != nil {
-// pt.CmethodError(methodName, err.Error())
-// continue
+// os.Exit(1)
+// }
+// for _, methodName := range ptInfo.MethodNames {
+// ln, err := pt.ListenSocks(tcp, 127.0.0.1:0)
+// if err != nil {
+// pt.CmethodError(methodName, err.Error())
+// continue
+// }
+// go acceptLoop(ln)
+// pt.Cmethod(methodName, ln.Version(), ln.Addr())
 // }
-// go acceptLoop(ln)
-// pt.Cmethod(methodName, ln.Version(), ln.Addr())
+// pt.CmethodsDone()
 // }
-// pt.CmethodsDone()
 //
 // Sample server usage:
-// func handler(conn net.Conn) {
+// var ptInfo pt.ServerInfo
+// ...
+// func handler(conn net.Conn) error {
+// defer conn.Close()
 // or, err := pt.ConnectOr(ptInfo, conn.RemoteAddr(), foo)
 // if err != nil {
 // return
 // }
+// defer or.Close()
 // // do something with or and conn
+// return nil
 // }
-// ...
-// var ptInfo pt.ServerInfo
-// var err error
-// ptInfo, err = pt.ServerSetup([]string{foo})
-// if err != nil {
-// os.Exit(1)
+// func acceptLoop(ln net.Listener) error {
+// for {
+// conn, err := ln.Accept()
+// if err != nil {
+// return err
+// }
+// go handler(conn)
+// }
+// return nil
 // }
-// for _, bindaddr := range 

[tor-commits] [goptlib/master] Whitespace.

2013-12-08 Thread dcf
commit b867131d3e99f526e0182f32910e2a9f801928c5
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 01:01:50 2013 -0800

Whitespace.
---
 pt.go |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pt.go b/pt.go
index f858c2a..86632d9 100644
--- a/pt.go
+++ b/pt.go
@@ -31,7 +31,7 @@
 // var err error
 // ptInfo, err = pt.ServerSetup([]string{foo})
 // if err != nil {
-// os.Exit(1)
+// os.Exit(1)
 // }
 // for _, bindaddr := range ptInfo.Bindaddrs {
 // ln, err := startListener(bindaddr.Addr, bindaddr.MethodName)



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


[tor-commits] [goptlib/master] Add TOR_PT_SERVER_TRANSPORT_OPTIONS to TestGetServerBindaddrs.

2013-12-08 Thread dcf
commit 5eeb899e3aaaca4cff2548aafaa0bf5314d3407b
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 10:54:45 2013 -0800

Add TOR_PT_SERVER_TRANSPORT_OPTIONS to TestGetServerBindaddrs.
---
 pt_test.go |   55 ---
 1 file changed, 36 insertions(+), 19 deletions(-)

diff --git a/pt_test.go b/pt_test.go
index 1602fa8..f3d9bc1 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -254,64 +254,79 @@ func bindaddrSetsEqual(a, b []Bindaddr) bool {
 
 func TestGetServerBindaddrs(t *testing.T) {
badTests := [...]struct {
-   ptServerBindaddr   string
-   ptServerTransports string
-   methodNames[]string
+   ptServerBindaddr string
+   ptServerTransports   string
+   ptServerTransportOptions string
+   methodNames  []string
}{
{
xxx,
xxx,
+   ,
[]string{},
},
{
alpha-1.2.3.4,
alpha,
+   ,
[]string{alpha, beta, gamma},
},
+   {
+   alpha-1.2.3.4:,
+   alpha,
+   key=value,
+   []string{alpha},
+   },
}
goodTests := [...]struct {
-   ptServerBindaddr   string
-   ptServerTransports string
-   methodNames[]string
-   expected   []Bindaddr
+   ptServerBindaddr string
+   ptServerTransports   string
+   ptServerTransportOptions string
+   methodNames  []string
+   expected []Bindaddr
}{
{
alpha-1.2.3.4:,beta-[1:2::3:4]:,
alpha,beta,gamma,
+   alpha:k1=v1,beta:k2=v2,gamma:k3=v3,
[]string{alpha, beta},
[]Bindaddr{
-   {MethodName: alpha, Addr: net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }},
-   {MethodName: beta, Addr: net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
+   {alpha, net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }, Args{k1: []string{v1}}},
+   {beta, net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }, Args{k2: []string{v2}}},
},
},
{
alpha-1.2.3.4:,
xxx,
+   ,
[]string{alpha, beta, gamma},
[]Bindaddr{},
},
{
alpha-1.2.3.4:,
alpha,beta,gamma,
+   ,
[]string{},
[]Bindaddr{},
},
{
alpha-1.2.3.4:,beta-[1:2::3:4]:,
*,
+   ,
[]string{alpha, beta},
[]Bindaddr{
-   {MethodName: alpha, Addr: net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }},
-   {MethodName: beta, Addr: net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
+   {alpha, net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }, Args{}},
+   {beta, net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }, Args{}},
},
},
{
trebuchet-127.0.0.1:1984,ballista-127.0.0.1:4891,
trebuchet,ballista,
+   
trebuchet:secret=nou;trebuchet:cache=/tmp/cache;ballista:secret=yes,
[]string{trebuchet, ballista},
[]Bindaddr{
-   {MethodName: trebuchet, Addr: 
net.TCPAddr{IP: net.ParseIP(127.0.0.1), Port: 1984}},
-   {MethodName: ballista, Addr: net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 4891}},
+   {trebuchet, net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 1984}, Args{secret: []string{nou}, cache: 
[]string{/tmp/cache}}},
+   {ballista, net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 4891}, Args{secret: []string{yes}}},
},
},
}
@@ -327,24 +342,26 @@ func TestGetServerBindaddrs(t *testing.T) {
for _, test := range badTests {
os.Setenv(TOR_PT_SERVER_BINDADDR, test.ptServerBindaddr)
os.Setenv(TOR_PT_SERVER_TRANSPORTS, test.ptServerTransports)
+   

[tor-commits] [goptlib/master] Add an example of using SmethodArgs.

2013-12-08 Thread dcf
commit f39e775a2933f965d7fc9a673309b502a2420595
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 18:28:54 2013 -0800

Add an example of using SmethodArgs.
---
 pt.go |   13 +
 1 file changed, 13 insertions(+)

diff --git a/pt.go b/pt.go
index d415480..39e7471 100644
--- a/pt.go
+++ b/pt.go
@@ -262,6 +262,19 @@ func Smethod(name string, addr net.Addr) {
 
 // Emit an SMETHOD line with an ARGS option. args is a name–value mapping 
that
 // will be added to the server's extrainfo document.
+//
+// This is an example of how to check for a required option:
+// args := pt.Args{}
+// secret, ok := bindaddr.Options.Get(shared-secret)
+// if !ok {
+// pt.SmethodError(bindaddr.MethodName, need a shared-secret 
option)
+// continue
+// }
+// args.Add(shared-secret, secret)
+// pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), args)
+// Or, if you just want to echo back the options provided by Tor from the
+// TransportServerOptions configuration,
+// pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), bindaddr.Options)
 func SmethodArgs(name string, addr net.Addr, args Args) {
line(SMETHOD, name, addr.String(), ARGS:+encodeSmethodArgs(args))
 }

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


[tor-commits] [goptlib/master] Add SocksListener.Version to return the socks4 string.

2013-12-08 Thread dcf
commit ed01efcdf1e96664c998d2e91ff2d3ce78f0a447
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 21:45:19 2013 -0800

Add SocksListener.Version to return the socks4 string.
---
 examples/dummy-client/dummy-client.go |2 +-
 pt.go |2 +-
 socks.go  |5 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/examples/dummy-client/dummy-client.go 
b/examples/dummy-client/dummy-client.go
index 9497f99..f619e7c 100644
--- a/examples/dummy-client/dummy-client.go
+++ b/examples/dummy-client/dummy-client.go
@@ -93,7 +93,7 @@ func main() {
continue
}
go acceptLoop(ln)
-   pt.Cmethod(methodName, socks4, ln.Addr())
+   pt.Cmethod(methodName, ln.Version(), ln.Addr())
listeners = append(listeners, ln)
}
pt.CmethodsDone()
diff --git a/pt.go b/pt.go
index 345a7bd..45dc795 100644
--- a/pt.go
+++ b/pt.go
@@ -14,7 +14,7 @@
 // continue
 // }
 // go acceptLoop(ln)
-// pt.Cmethod(methodName, socks4, ln.Addr())
+// pt.Cmethod(methodName, ln.Version(), ln.Addr())
 // }
 // pt.CmethodsDone()
 //
diff --git a/socks.go b/socks.go
index c982c7a..6cbecc6 100644
--- a/socks.go
+++ b/socks.go
@@ -95,6 +95,11 @@ func (ln *SocksListener) Accept() (net.Conn, error) {
return ln.AcceptSocks()
 }
 
+// Returns socks4, suitable to be included in a call to pt.Cmethod.
+func (ln *SocksListener) Version() string {
+   return socks4
+}
+
 // Call Accept on the wrapped net.Listener, do SOCKS negotiation, and return a
 // SocksConn. After accepting, you must call either conn.Grant or conn.Reject
 // (presumably after trying to connect to conn.Req.Target).



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


[tor-commits] [goptlib/master] Return a generic net.Conn from ConnectOr.

2013-12-08 Thread dcf
commit ee5deba3d72bbde1cfd42547066519321be88bff
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:21:13 2013 -0800

Return a generic net.Conn from ConnectOr.
---
 pt.go |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pt.go b/pt.go
index b8b88ce..f926ee9 100644
--- a/pt.go
+++ b/pt.go
@@ -743,10 +743,10 @@ func extOrPortSetup(s io.ReadWriter, addr net.Addr, 
methodName string) error {
 }
 
 // Connect to info.ExtendedOrAddr if defined, or else info.OrAddr, and return 
an
-// open *net.TCPConn. If connecting to the extended OR port, extended OR port
+// open net.Conn. If connecting to the extended OR port, extended OR port
 // authentication à la 217-ext-orport-auth.txt is done before returning; an
 // error is returned if authentication fails.
-func ConnectOr(info *ServerInfo, addr net.Addr, methodName string) 
(*net.TCPConn, error) {
+func ConnectOr(info *ServerInfo, addr net.Addr, methodName string) (net.Conn, 
error) {
if info.ExtendedOrAddr == nil {
return net.DialTCP(tcp, nil, info.OrAddr)
}



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


[tor-commits] [goptlib/master] Rearrange SocksRequest.

2013-12-08 Thread dcf
commit 23e5be1a203cc4d04dcf7f35c6104884ffe3184b
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 22:34:59 2013 -0800

Rearrange SocksRequest.
---
 socks.go  |4 ++--
 socks_test.go |   38 ++
 2 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/socks.go b/socks.go
index a3c5ede..583b999 100644
--- a/socks.go
+++ b/socks.go
@@ -18,10 +18,10 @@ const (
 
 // SocksRequest describes a SOCKS request.
 type SocksRequest struct {
-   // The userid string sent by the client.
-   Username string
// The endpoint requested by the client as a host:port string.
Target string
+   // The userid string sent by the client.
+   Username string
// The parsed contents of Username as a key–value mapping.
Args Args
 }
diff --git a/socks_test.go b/socks_test.go
index bcd4433..6cfa967 100644
--- a/socks_test.go
+++ b/socks_test.go
@@ -26,38 +26,44 @@ func TestReadSocks4aConnect(t *testing.T) {
}
ipTests := [...]struct {
input  []byte
-   userid string
addr   net.TCPAddr
+   userid string
}{
{
[]byte(\x04\x01\x12\x34\x01\x02\x03\x04key=value\x00),
-   key=value, net.TCPAddr{IP: net.ParseIP(1.2.3.4), 
Port: 0x1234},
+   net.TCPAddr{IP: net.ParseIP(1.2.3.4), Port: 0x1234},
+   key=value,
},
{
[]byte(\x04\x01\x12\x34\x01\x02\x03\x04\x00),
-   , net.TCPAddr{IP: net.ParseIP(1.2.3.4), Port: 
0x1234},
+   net.TCPAddr{IP: net.ParseIP(1.2.3.4), Port: 0x1234},
+   ,
},
}
hostnameTests := [...]struct {
input  []byte
-   userid string
target string
+   userid string
}{
{

[]byte(\x04\x01\x12\x34\x00\x00\x00\x01key=value\x00hostname\x00),
-   key=value, hostname:4660,
+   hostname:4660,
+   key=value,
},
{

[]byte(\x04\x01\x12\x34\x00\x00\x00\x01\x00hostname\x00),
-   , hostname:4660,
+   hostname:4660,
+   ,
},
{

[]byte(\x04\x01\x12\x34\x00\x00\x00\x01key=value\x00\x00),
-   key=value, :4660,
+   :4660,
+   key=value,
},
{
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01\x00\x00),
-   , :4660,
+   :4660,
+   ,
},
}
 
@@ -77,10 +83,6 @@ func TestReadSocks4aConnect(t *testing.T) {
if err != nil {
t.Errorf(%q unexpectedly returned an error: %s, 
test.input, err)
}
-   if req.Username != test.userid {
-   t.Errorf(%q → username %q (expected %q), test.input,
-   req.Username, test.userid)
-   }
addr, err := net.ResolveTCPAddr(tcp, req.Target)
if err != nil {
t.Error(%q → target %q: cannot resolve: %s, 
test.input,
@@ -90,6 +92,10 @@ func TestReadSocks4aConnect(t *testing.T) {
t.Errorf(%q → address %s (expected %s), test.input,
req.Target, test.addr.String())
}
+   if req.Username != test.userid {
+   t.Errorf(%q → username %q (expected %q), test.input,
+   req.Username, test.userid)
+   }
if req.Args == nil {
t.Errorf(%q → unexpected nil Args from username %q, 
test.input, req.Username)
}
@@ -102,14 +108,14 @@ func TestReadSocks4aConnect(t *testing.T) {
if err != nil {
t.Errorf(%q unexpectedly returned an error: %s, 
test.input, err)
}
-   if req.Username != test.userid {
-   t.Errorf(%q → username %q (expected %q), test.input,
-   req.Username, test.userid)
-   }
if req.Target != test.target {
t.Errorf(%q → target %q (expected %q), test.input,
req.Target, test.target)
}
+   if req.Username != test.userid {
+   t.Errorf(%q → username %q (expected %q), test.input,
+   req.Username, test.userid)
+   }
if req.Args == nil {
t.Errorf(%q → unexpected nil Args from username %q, 

[tor-commits] [goptlib/master] Add tests for whitespace in resolveAddr.

2013-12-08 Thread dcf
commit 2bd508173cb41f910733c03e1e56f65dd97291a6
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:40:24 2013 -0800

Add tests for whitespace in resolveAddr.
---
 pt_test.go |4 
 1 file changed, 4 insertions(+)

diff --git a/pt_test.go b/pt_test.go
index e75bb02..653d64d 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -205,6 +205,10 @@ func TestResolveAddr(t *testing.T) {
1.2.3.4:0x50,
1.2.3.4:-65456,
1.2.3.4:65536,
+   1.2.3.4:80\x00,
+   1.2.3.4:80 ,
+1.2.3.4:80,
+   1.2.3.4 : 80,
}
goodTests := [...]struct {
inputstring



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


[tor-commits] [goptlib/master] Move SocksListener.Version.

2013-12-08 Thread dcf
commit e0af87951d81eb67f706f104cb3a2b2af99a881c
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:04:48 2013 -0800

Move SocksListener.Version.
---
 socks.go |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/socks.go b/socks.go
index d33afce..500a1fa 100644
--- a/socks.go
+++ b/socks.go
@@ -100,11 +100,6 @@ func (ln *SocksListener) Accept() (net.Conn, error) {
return ln.AcceptSocks()
 }
 
-// Returns socks4, suitable to be included in a call to pt.Cmethod.
-func (ln *SocksListener) Version() string {
-   return socks4
-}
-
 // Call Accept on the wrapped net.Listener, do SOCKS negotiation, and return a
 // SocksConn. After accepting, you must call either conn.Grant or conn.Reject
 // (presumably after trying to connect to conn.Req.Target).
@@ -123,6 +118,11 @@ func (ln *SocksListener) AcceptSocks() (*SocksConn, error) 
{
return conn, nil
 }
 
+// Returns socks4, suitable to be included in a call to pt.Cmethod.
+func (ln *SocksListener) Version() string {
+   return socks4
+}
+
 // Read a SOCKS4a connect request. Returns a SocksRequest.
 func readSocks4aConnect(s io.Reader) (req SocksRequest, err error) {
r := bufio.NewReader(s)



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


[tor-commits] [goptlib/master] Args interface.

2013-12-08 Thread dcf
commit aab03a3774f2ca1b9b038e557fe8c660a6a0ae5c
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 01:40:12 2013 -0800

Args interface.
---
 args.go  |   25 +
 args_test.go |   57 +
 2 files changed, 82 insertions(+)

diff --git a/args.go b/args.go
new file mode 100644
index 000..6c8fb86
--- /dev/null
+++ b/args.go
@@ -0,0 +1,25 @@
+package pt
+
+// Key–value mappings for the representation of client and server options.
+
+// Args maps a string key to a list of values. It is similar to url.Values.
+type Args map[string][]string
+
+// Get the first value associated with the given key. If there are any value
+// associated with the key, the ok return value is true; otherwise it is false.
+// If you need access to multiple values, use the map directly.
+func (args Args) Get(key string) (value string, ok bool) {
+   if args == nil {
+   return , false
+   }
+   vals, ok := args[key]
+   if !ok || len(vals) == 0 {
+   return , false
+   }
+   return vals[0], true
+}
+
+// Append value to the list of values for key.
+func (args Args) Add(key, value string) {
+   args[key] = append(args[key], value)
+}
diff --git a/args_test.go b/args_test.go
new file mode 100644
index 000..c89cef3
--- /dev/null
+++ b/args_test.go
@@ -0,0 +1,57 @@
+package pt
+
+import (
+   testing
+)
+
+func TestArgsGet(t *testing.T) {
+   args := Args{
+   a: []string{},
+   b: []string{value},
+   c: []string{v1, v2, v3},
+   }
+
+   var v string
+   var ok bool
+   v, ok = args.Get(a)
+   if ok {
+   t.Errorf(Unexpected Get success for %q, a)
+   }
+   v, ok = args.Get(b)
+   if !ok {
+   t.Errorf(Unexpected Get failure for %q, b)
+   }
+   if v != value {
+   t.Errorf(Get(%q) → %q (expected %q), b, v, value)
+   }
+   v, ok = args.Get(c)
+   if !ok {
+   t.Errorf(Unexpected Get failure for %q, c)
+   }
+   if v != v1 {
+   t.Errorf(Get(%q) → %q (expected %q), c, v, v1)
+   }
+   v, ok = args.Get(d)
+   if ok {
+   t.Errorf(Unexpected Get success for %q, d)
+   }
+}
+
+func TestArgsAdd(t *testing.T) {
+   args := make(Args)
+   if !argsEqual(args, Args{}) {
+   t.Error()
+   }
+   args.Add(k1, v1)
+   if !argsEqual(args, Args{k1: []string{v1}}) {
+   t.Error()
+   }
+   args.Add(k2, v2)
+   if !argsEqual(args, Args{k1: []string{v1}, k2: []string{v2}}) {
+   t.Error()
+   }
+   args.Add(k1, v3)
+   if !argsEqual(args, Args{k1: []string{v1, v3}, k2: 
[]string{v2}}) {
+   t.Error()
+   }
+}



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


[tor-commits] [goptlib/master] Put the non-IPv4 zero bytes comment on an exposed function too.

2013-12-08 Thread dcf
commit 6f5f941eaaac295edab1ab158aa825087cba46ba
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:01:50 2013 -0800

Put the non-IPv4 zero bytes comment on an exposed function too.
---
 socks.go |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/socks.go b/socks.go
index 583b999..d33afce 100644
--- a/socks.go
+++ b/socks.go
@@ -33,7 +33,8 @@ type SocksConn struct {
 }
 
 // Send a message to the proxy client that access to the given address is
-// granted.
+// granted. If the IP field inside addr is not an IPv4 address, the IP portion
+// of the response will be four zero bytes.
 func (conn *SocksConn) Grant(addr *net.TCPAddr) error {
return sendSocks4aResponseGranted(conn, addr)
 }



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


[tor-commits] [goptlib/master] Add SmethodArgs to emit SMETHOD with ARGS.

2013-12-08 Thread dcf
commit af41f2c1074ad73bde5b326083d2511b30924793
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 03:03:12 2013 -0800

Add SmethodArgs to emit SMETHOD with ARGS.
---
 pt.go |6 ++
 1 file changed, 6 insertions(+)

diff --git a/pt.go b/pt.go
index 18c3b73..4f7f167 100644
--- a/pt.go
+++ b/pt.go
@@ -259,6 +259,12 @@ func Smethod(name string, addr net.Addr) {
line(SMETHOD, name, addr.String())
 }
 
+// Emit an SMETHOD line with an ARGS option. args is a name–value mapping 
that
+// will be added to the server's extrainfo document.
+func SmethodArgs(name string, addr net.Addr, args Args) {
+   line(SMETHOD, name, addr.String(), ARGS:+encodeSmethodArgs(args))
+}
+
 // Emit an SMETHODS DONE line. Call this after opening all server listeners.
 func SmethodsDone() {
line(SMETHODS, DONE)



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


[tor-commits] [goptlib/master] Fix TestResolveAddr.

2013-12-08 Thread dcf
commit f78c529302ea34027039336fee08991ebc367ce9
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:41:35 2013 -0800

Fix TestResolveAddr.

We try reading the address from the Buffer with a size one greater than
its expected length, to ensure that it's not too long. But we didn't
trim that extra byte before trying to resolve it again, so there was an
extra '\x00' at the end. Previously it was ignored by net.LookupPort.
---
 pt_test.go |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pt_test.go b/pt_test.go
index 653d64d..856b23c 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -496,7 +496,7 @@ func TestExtOrSendUserAddr(t *testing.T) {
}
// test that parsing the address gives something equivalent to
// the original.
-   outputAddr, err := resolveAddr(string(p))
+   outputAddr, err := resolveAddr(string(p[:n]))
if err != nil {
t.Fatal(err)
}



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


[tor-commits] [goptlib/master] parseClientParameters.

2013-12-08 Thread dcf
commit fb691a255911631b41b8eba33a034180e21a39a4
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 02:32:33 2013 -0800

parseClientParameters.
---
 args.go  |   80 +
 args_test.go |  126 ++
 2 files changed, 206 insertions(+)

diff --git a/args.go b/args.go
index 6c8fb86..df3aced 100644
--- a/args.go
+++ b/args.go
@@ -1,5 +1,11 @@
 package pt
 
+import (
+   bytes
+   errors
+   fmt
+)
+
 // Key–value mappings for the representation of client and server options.
 
 // Args maps a string key to a list of values. It is similar to url.Values.
@@ -23,3 +29,77 @@ func (args Args) Get(key string) (value string, ok bool) {
 func (args Args) Add(key, value string) {
args[key] = append(args[key], value)
 }
+
+// Return the index of the next unescaped byte in s that is in the term set, or
+// else the length of the string if not terminators appear. Additionally return
+// the unescaped string up to the returned index.
+func indexUnescaped(s string, term []byte) (int, string, error) {
+   var i int
+   unesc := make([]byte, 0)
+   for i = 0; i  len(s); i++ {
+   b := s[i]
+   // A terminator byte?
+   if bytes.IndexByte(term, b) != -1 {
+   break
+   }
+   if b == '\\' {
+   i++
+   if i = len(s) {
+   return 0, , errors.New(fmt.Sprintf(nothing 
following final escape in %q, s))
+   }
+   b = s[i]
+   }
+   unesc = append(unesc, b)
+   }
+   return i, string(unesc), nil
+}
+
+// Parse a name–value mapping as from an encoded SOCKS username/password.
+//
+// If any [k=v] items are provided, they are configuration parameters for the
+// proxy: Tor should separate them with semicolons ... If a key or value value
+// must contain [an equals sign or] a semicolon or a backslash, it is escaped
+// with a backslash.
+func parseClientParameters(s string) (args Args, err error) {
+   args = make(Args)
+   if len(s) == 0 {
+   return
+   }
+   i := 0
+   for {
+   var key, value string
+   var offset, begin int
+
+   begin = i
+   // Read the key.
+   offset, key, err = indexUnescaped(s[i:], []byte{'=', ';'})
+   if err != nil {
+   return
+   }
+   i += offset
+   // End of string or no equals sign?
+   if i = len(s) || s[i] != '=' {
+   err = errors.New(fmt.Sprintf(no equals sign in %q, 
s[begin:i]))
+   return
+   }
+   // Skip the equals sign.
+   i++
+   // Read the value.
+   offset, value, err = indexUnescaped(s[i:], []byte{';'})
+   if err != nil {
+   return
+   }
+   i += offset
+   if len(key) == 0 {
+   err = errors.New(fmt.Sprintf(empty key in %q, 
s[begin:i]))
+   return
+   }
+   args.Add(key, value)
+   if i = len(s) {
+   break
+   }
+   // Skip the semicolon.
+   i++
+   }
+   return args, nil
+}
diff --git a/args_test.go b/args_test.go
index c89cef3..69194fd 100644
--- a/args_test.go
+++ b/args_test.go
@@ -4,6 +4,34 @@ import (
testing
 )
 
+func stringSlicesEqual(a, b []string) bool {
+   if len(a) != len(b) {
+   return false
+   }
+   for i := range a {
+   if a[i] != b[i] {
+   return false
+   }
+   }
+   return true
+}
+
+func argsEqual(a, b Args) bool {
+   for k, av := range a {
+   bv := b[k]
+   if !stringSlicesEqual(av, bv) {
+   return false
+   }
+   }
+   for k, bv := range b {
+   av := a[k]
+   if !stringSlicesEqual(av, bv) {
+   return false
+   }
+   }
+   return true
+}
+
 func TestArgsGet(t *testing.T) {
args := Args{
a: []string{},
@@ -55,3 +83,101 @@ func TestArgsAdd(t *testing.T) {
t.Error()
}
 }
+
+func TestParseClientParameters(t *testing.T) {
+   badTests := [...]string{
+   key,
+   =value,
+   ==value,
+   ==key=value,
+   key=value\\,
+   a=b;key=value\\,
+   a;b=c,
+   ;,
+   key=value;,
+   ;key=value,
+   key\\=value,
+   }
+   goodTests := [...]struct {
+   inputstring
+   expected Args
+   }{
+   {
+   

[tor-commits] [goptlib/master] Add tests for weird port numbers.

2013-12-08 Thread dcf
commit 14ddb9b88bfddc897e3deb7fe02967afbe0090c7
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:32:12 2013 -0800

Add tests for weird port numbers.

--- FAIL: TestResolveAddr (0.00 seconds)
pt_test.go:221: 1.2.3.4:http unexpectedly succeeded: 1.2.3.4:80
pt_test.go:221: 1.2.3.4:65536 unexpectedly succeeded: 1.2.3.4:0
---
 pt_test.go |4 
 1 file changed, 4 insertions(+)

diff --git a/pt_test.go b/pt_test.go
index f3d9bc1..e75bb02 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -201,6 +201,10 @@ func TestResolveAddr(t *testing.T) {
1:2:3:4::,
localhost:,
[localhost]:,
+   1.2.3.4:http,
+   1.2.3.4:0x50,
+   1.2.3.4:-65456,
+   1.2.3.4:65536,
}
goodTests := [...]struct {
inputstring



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


[tor-commits] [goptlib/master] Use implicit return values in ClientSetup and ServerSetup.

2013-12-08 Thread dcf
commit 90ae129445f2b847ba3f51b4db805585e990a4dd
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 02:44:24 2013 -0800

Use implicit return values in ClientSetup and ServerSetup.
---
 pt.go |   27 +--
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/pt.go b/pt.go
index f389794..78892a8 100644
--- a/pt.go
+++ b/pt.go
@@ -319,18 +319,16 @@ type ClientInfo struct {
 // Check the client pluggable transports environments, emitting an error 
message
 // and returning a non-nil error if any error is encountered. Returns a
 // ClientInfo struct.
-func ClientSetup(methodNames []string) (ClientInfo, error) {
-   var info ClientInfo
-
+func ClientSetup(methodNames []string) (info ClientInfo, err error) {
ver, err := getManagedTransportVer()
if err != nil {
-   return info, err
+   return
}
line(VERSION, ver)
 
info.MethodNames, err = getClientTransports(methodNames)
if err != nil {
-   return info, err
+   return
}
 
return info, nil
@@ -500,34 +498,34 @@ type ServerInfo struct {
 // and returning a non-nil error if any error is encountered. Resolves the
 // various requested bind addresses, the server ORPort and extended ORPort, and
 // reads the auth cookie file. Returns a ServerInfo struct.
-func ServerSetup(methodNames []string) (ServerInfo, error) {
-   var info ServerInfo
-
+func ServerSetup(methodNames []string) (info ServerInfo, err error) {
ver, err := getManagedTransportVer()
if err != nil {
-   return info, err
+   return
}
line(VERSION, ver)
 
orPort, err := getenvRequired(TOR_PT_ORPORT)
if err != nil {
-   return info, err
+   return
}
info.OrAddr, err = resolveAddr(orPort)
if err != nil {
-   return info, envError(fmt.Sprintf(cannot resolve TOR_PT_ORPORT 
%q: %s, orPort, err.Error()))
+   err = envError(fmt.Sprintf(cannot resolve TOR_PT_ORPORT %q: 
%s, orPort, err.Error()))
+   return
}
 
info.Bindaddrs, err = getServerBindaddrs(methodNames)
if err != nil {
-   return info, err
+   return
}
 
var extendedOrPort = getenv(TOR_PT_EXTENDED_SERVER_PORT)
if extendedOrPort !=  {
info.ExtendedOrAddr, err = resolveAddr(extendedOrPort)
if err != nil {
-   return info, envError(fmt.Sprintf(cannot resolve 
TOR_PT_EXTENDED_SERVER_PORT %q: %s, extendedOrPort, err.Error()))
+   err = envError(fmt.Sprintf(cannot resolve 
TOR_PT_EXTENDED_SERVER_PORT %q: %s, extendedOrPort, err.Error()))
+   return
}
}
 
@@ -535,7 +533,8 @@ func ServerSetup(methodNames []string) (ServerInfo, error) {
if authCookieFilename !=  {
info.AuthCookie, err = readAuthCookieFile(authCookieFilename)
if err != nil {
-   return info, envError(fmt.Sprintf(error reading 
TOR_PT_AUTH_COOKIE_FILE %q: %s, authCookieFilename, err.Error()))
+   err = envError(fmt.Sprintf(error reading 
TOR_PT_AUTH_COOKIE_FILE %q: %s, authCookieFilename, err.Error()))
+   return
}
}
 



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


[tor-commits] [goptlib/master] encodeSmethodArgs.

2013-12-08 Thread dcf
commit 9a9f9cb455d17bf82d02292953b945dcbb4a5029
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 02:53:38 2013 -0800

encodeSmethodArgs.
---
 args.go  |   44 
 args_test.go |   35 +++
 2 files changed, 79 insertions(+)

diff --git a/args.go b/args.go
index a0a3bd5..9eacee5 100644
--- a/args.go
+++ b/args.go
@@ -4,6 +4,8 @@ import (
bytes
errors
fmt
+   sort
+   strings
 )
 
 // Key–value mappings for the representation of client and server options.
@@ -173,3 +175,45 @@ func parseServerTransportOptions(s string) (opts 
map[string]Args, err error) {
}
return opts, nil
 }
+
+// Escape backslashes and all the bytes that are in set.
+func backslashEscape(s string, set []byte) string {
+   var buf bytes.Buffer
+   for _, b := range []byte(s) {
+   if b == '\\' || bytes.IndexByte(set, b) != -1 {
+   buf.WriteByte('\\')
+   }
+   buf.WriteByte(b)
+   }
+   return buf.String()
+}
+
+// Encode a name–value mapping so that it is suitable to go in the ARGS 
option
+// of an SMETHOD line. The output is sorted by key. The ARGS: prefix is not
+// added.
+//
+// Equal signs and commas [and backslashes] must be escaped with a backslash.
+func encodeSmethodArgs(args Args) string {
+   if args == nil {
+   return 
+   }
+
+   keys := make([]string, 0, len(args))
+   for key, _ := range args {
+   keys = append(keys, key)
+   }
+   sort.Strings(keys)
+
+   escape := func(s string) string {
+   return backslashEscape(s, []byte{'=', ','})
+   }
+
+   var pairs []string
+   for _, key := range keys {
+   for _, value := range args[key] {
+   pairs = append(pairs, escape(key)+=+escape(value))
+   }
+   }
+
+   return strings.Join(pairs, ,)
+}
diff --git a/args_test.go b/args_test.go
index ece7a50..d62968c 100644
--- a/args_test.go
+++ b/args_test.go
@@ -299,3 +299,38 @@ func TestParseServerTransportOptions(t *testing.T) {
}
}
 }
+
+func TestEncodeSmethodArgs(t *testing.T) {
+   tests := [...]struct {
+   args Args
+   expected string
+   }{
+   {
+   Args{},
+   ,
+   },
+   {
+   Args{j: []string{v1, v2, v3}, k: 
[]string{v1, v2, v3}},
+   j=v1,j=v2,j=v3,k=v1,k=v2,k=v3,
+   },
+   {
+   Args{=,\\: []string{=, ,, \\}},
+   \\=\\,=\\=,\\=\\,=\\,,\\=\\,=,
+   },
+   {
+   Args{secret: []string{yes}},
+   secret=yes,
+   },
+   {
+   Args{secret: []string{nou}, cache: 
[]string{/tmp/cache}},
+   cache=/tmp/cache,secret=nou,
+   },
+   }
+
+   for _, test := range tests {
+   encoded := encodeSmethodArgs(test.args)
+   if encoded != test.expected {
+   t.Errorf(%q → %q (expected %q), test.args, encoded, 
test.expected)
+   }
+   }
+}



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


[tor-commits] [goptlib/master] parseServerTransportOptions.

2013-12-08 Thread dcf
commit 11d2149f1de4c0975ce70f8eaceb863b9058675c
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 01:59:57 2013 -0800

parseServerTransportOptions.
---
 args.go  |   70 +
 args_test.go |  110 ++
 2 files changed, 180 insertions(+)

diff --git a/args.go b/args.go
index df3aced..a0a3bd5 100644
--- a/args.go
+++ b/args.go
@@ -103,3 +103,73 @@ func parseClientParameters(s string) (args Args, err 
error) {
}
return args, nil
 }
+
+// Parse a transport–name–value mapping as from 
TOR_PT_SERVER_TRANSPORT_OPTIONS.
+//
+// value is a k=v string value with options that are to be passed to the
+// transport. Colons, semicolons, equal signs and backslashes must be escaped
+// with a backslash.
+// Example: trebuchet:secret=nou;trebuchet:cache=/tmp/cache;ballista:secret=yes
+func parseServerTransportOptions(s string) (opts map[string]Args, err error) {
+   opts = make(map[string]Args)
+   if len(s) == 0 {
+   return
+   }
+   i := 0
+   for {
+   var methodName, key, value string
+   var offset, begin int
+
+   begin = i
+   // Read the method name.
+   offset, methodName, err = indexUnescaped(s[i:], []byte{':', 
'=', ';'})
+   if err != nil {
+   return
+   }
+   i += offset
+   // End of string or no colon?
+   if i = len(s) || s[i] != ':' {
+   err = errors.New(fmt.Sprintf(no colon in %q, 
s[begin:i]))
+   return
+   }
+   // Skip the colon.
+   i++
+   // Read the key.
+   offset, key, err = indexUnescaped(s[i:], []byte{'=', ';'})
+   if err != nil {
+   return
+   }
+   i += offset
+   // End of string or no equals sign?
+   if i = len(s) || s[i] != '=' {
+   err = errors.New(fmt.Sprintf(no equals sign in %q, 
s[begin:i]))
+   return
+   }
+   // Skip the equals sign.
+   i++
+   // Read the value.
+   offset, value, err = indexUnescaped(s[i:], []byte{';'})
+   if err != nil {
+   return
+   }
+   i += offset
+   if len(methodName) == 0 {
+   err = errors.New(fmt.Sprintf(empty method name in %q, 
s[begin:i]))
+   return
+   }
+   if len(key) == 0 {
+   err = errors.New(fmt.Sprintf(empty key in %q, 
s[begin:i]))
+   return
+   }
+   if opts[methodName] == nil {
+   opts[methodName] = make(Args)
+   }
+   opts[methodName].Add(key, value)
+   if i = len(s) {
+   break
+   }
+   // Skip the semicolon.
+   i++
+   }
+   return opts, nil
+}
diff --git a/args_test.go b/args_test.go
index 69194fd..078c79a 100644
--- a/args_test.go
+++ b/args_test.go
@@ -181,3 +181,113 @@ func TestParseClientParameters(t *testing.T) {
}
}
 }
+
+func optsEqual(a, b map[string]Args) bool {
+   for k, av := range a {
+   bv, ok := b[k]
+   if !ok || !argsEqual(av, bv) {
+   return false
+   }
+   }
+   for k, bv := range b {
+   av, ok := a[k]
+   if !ok || !argsEqual(av, bv) {
+   return false
+   }
+   }
+   return true
+}
+
+func TestParseServerTransportOptions(t *testing.T) {
+   badTests := [...]string{
+   :=,
+   t:=,
+   :k=,
+   :=v,
+   t:=v,
+   t:=v,
+   t:k=v;,
+   abc,
+   t:,
+   key=value,
+   =value,
+   t:k=v\\,
+   t1:k=v;t2:k=v\\,
+   t:=key=value,
+   t:==key=value,
+   t:;key=value,
+   t:key\\=value,
+   }
+   goodTests := [...]struct {
+   inputstring
+   expected map[string]Args
+   }{
+   {
+   ,
+   map[string]Args{},
+   },
+   {
+   t:k=v,
+   map[string]Args{
+   t: Args{k: []string{v}},
+   },
+   },
+   {
+   t1:k=v1;t2:k=v2;t1:k=v3,
+   map[string]Args{
+   t1: Args{k: []string{v1, v3}},
+   t2: Args{k: []string{v2}},
+   },
+   

[tor-commits] [goptlib/master] Parse SOCKS userid parameters as SocksRequest.Args.

2013-12-08 Thread dcf
commit a7d271a44bef29942d8a0c2489d61a5ddd2098a1
Author: David Fifield da...@bamsoftware.com
Date:   Sat Dec 7 22:26:46 2013 -0800

Parse SOCKS userid parameters as SocksRequest.Args.
---
 socks.go  |7 +++
 socks_test.go |   28 ++--
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/socks.go b/socks.go
index 2ae1c5e..a3c5ede 100644
--- a/socks.go
+++ b/socks.go
@@ -22,6 +22,8 @@ type SocksRequest struct {
Username string
// The endpoint requested by the client as a host:port string.
Target string
+   // The parsed contents of Username as a key–value mapping.
+   Args Args
 }
 
 // SocksConn encapsulates a net.Conn and information associated with a SOCKS 
request.
@@ -145,6 +147,11 @@ func readSocks4aConnect(s io.Reader) (req SocksRequest, 
err error) {
}
req.Username = string(usernameBytes[:len(usernameBytes)-1])
 
+   req.Args, err = parseClientParameters(req.Username)
+   if err != nil {
+   return
+   }
+
var port int
var host string
 
diff --git a/socks_test.go b/socks_test.go
index 2fb8a8c..bcd4433 100644
--- a/socks_test.go
+++ b/socks_test.go
@@ -12,13 +12,15 @@ func TestReadSocks4aConnect(t *testing.T) {
// missing userid
[]byte(\x04\x01\x12\x34\x01\x02\x03\x04),
// missing \x00 after userid
-   []byte(\x04\x01\x12\x34\x01\x02\x03\x04userid),
+   []byte(\x04\x01\x12\x34\x01\x02\x03\x04key=value),
// missing hostname
-   []byte(\x04\x01\x12\x34\x00\x00\x00\x01userid\x00),
+   []byte(\x04\x01\x12\x34\x00\x00\x00\x01key=value\x00),
// missing \x00 after hostname
-   []byte(\x04\x01\x12\x34\x00\x00\x00\x01userid\x00hostname),
+   []byte(\x04\x01\x12\x34\x00\x00\x00\x01key=value\x00hostname),
+   // bad name–value mapping
+   
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01userid\x00hostname\x00),
// BIND request
-   []byte(\x04\x02\x12\x34\x01\x02\x03\x04userid\x00),
+   []byte(\x04\x02\x12\x34\x01\x02\x03\x04\x00),
// SOCKS5
[]byte(\x05\x01\x00),
}
@@ -28,8 +30,8 @@ func TestReadSocks4aConnect(t *testing.T) {
addr   net.TCPAddr
}{
{
-   []byte(\x04\x01\x12\x34\x01\x02\x03\x04userid\x00),
-   userid, net.TCPAddr{IP: net.ParseIP(1.2.3.4), Port: 
0x1234},
+   []byte(\x04\x01\x12\x34\x01\x02\x03\x04key=value\x00),
+   key=value, net.TCPAddr{IP: net.ParseIP(1.2.3.4), 
Port: 0x1234},
},
{
[]byte(\x04\x01\x12\x34\x01\x02\x03\x04\x00),
@@ -42,16 +44,16 @@ func TestReadSocks4aConnect(t *testing.T) {
target string
}{
{
-   
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01userid\x00hostname\x00),
-   userid, hostname:4660,
+   
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01key=value\x00hostname\x00),
+   key=value, hostname:4660,
},
{

[]byte(\x04\x01\x12\x34\x00\x00\x00\x01\x00hostname\x00),
, hostname:4660,
},
{
-   
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01userid\x00\x00),
-   userid, :4660,
+   
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01key=value\x00\x00),
+   key=value, :4660,
},
{
[]byte(\x04\x01\x12\x34\x00\x00\x00\x01\x00\x00),
@@ -88,6 +90,9 @@ func TestReadSocks4aConnect(t *testing.T) {
t.Errorf(%q → address %s (expected %s), test.input,
req.Target, test.addr.String())
}
+   if req.Args == nil {
+   t.Errorf(%q → unexpected nil Args from username %q, 
test.input, req.Username)
+   }
}
 
for _, test := range hostnameTests {
@@ -105,6 +110,9 @@ func TestReadSocks4aConnect(t *testing.T) {
t.Errorf(%q → target %q (expected %q), test.input,
req.Target, test.target)
}
+   if req.Args == nil {
+   t.Errorf(%q → unexpected nil Args from username %q, 
test.input, req.Username)
+   }
}
 }
 



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


[tor-commits] [goptlib/master] Add examples from pt-spec.txt.

2013-12-08 Thread dcf
commit 736b0a63b6d2cd60a97682732c279ee56d7ccaa4
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 02:32:19 2013 -0800

Add examples from pt-spec.txt.
---
 args_test.go |8 
 pt_test.go   |9 +
 2 files changed, 17 insertions(+)

diff --git a/args_test.go b/args_test.go
index 078c79a..ece7a50 100644
--- a/args_test.go
+++ b/args_test.go
@@ -162,6 +162,14 @@ func TestParseClientParameters(t *testing.T) {
a\\=b=c,
Args{a=b: []string{c}},
},
+   {
+   shared-secret=rahasia;secrets-file=/tmp/blob,
+   Args{shared-secret: []string{rahasia}, 
secrets-file: []string{/tmp/blob}},
+   },
+   {
+   rocks=20;height=5.6,
+   Args{rocks: []string{20}, height: 
[]string{5.6}},
+   },
}
 
for _, input := range badTests {
diff --git a/pt_test.go b/pt_test.go
index 6da0322..1d30ff2 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -305,6 +305,15 @@ func TestGetServerBindaddrs(t *testing.T) {
{beta, net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
},
},
+   {
+   trebuchet-127.0.0.1:1984,ballista-127.0.0.1:4891,
+   trebuchet,ballista,
+   []string{trebuchet, ballista},
+   []Bindaddr{
+   {trebuchet, net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 1984}},
+   {ballista, net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 4891}},
+   },
+   },
}
 
Stdout = ioutil.Discard



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


[tor-commits] [goptlib/master] Parse TOR_PT_SERVER_TRANSPORT_OPTIONS and include in Bindaddr.

2013-12-08 Thread dcf
commit c2a6339b8c560cb49df1d9d703ac042293937034
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 02:39:30 2013 -0800

Parse TOR_PT_SERVER_TRANSPORT_OPTIONS and include in Bindaddr.
---
 pt.go  |   14 +-
 pt_test.go |   12 ++--
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/pt.go b/pt.go
index 4f7f167..f389794 100644
--- a/pt.go
+++ b/pt.go
@@ -341,6 +341,9 @@ func ClientSetup(methodNames []string) (ClientInfo, error) {
 type Bindaddr struct {
MethodName string
Addr   *net.TCPAddr
+   // Options from TOR_PT_SERVER_TRANSPORT_OPTIONS that pertain to this
+   // transport.
+   Options Args
 }
 
 // Resolve an address string into a net.TCPAddr. We are a bit more strict than
@@ -398,10 +401,18 @@ func filterBindaddrs(addrs []Bindaddr, methodNames 
[]string) []Bindaddr {
 
 // Return an array of Bindaddrs, those being the contents of
 // TOR_PT_SERVER_BINDADDR, with keys filtered by TOR_PT_SERVER_TRANSPORTS, and
-// further filtered by the methods in methodNames.
+// further filtered by the methods in methodNames. Transport-specific options
+// from TOR_PT_SERVER_TRANSPORT_OPTIONS are assigned to the Options member.
 func getServerBindaddrs(methodNames []string) ([]Bindaddr, error) {
var result []Bindaddr
 
+   // Parse the list of server transport options.
+   serverTransportOptions := getenv(TOR_PT_SERVER_TRANSPORT_OPTIONS)
+   optionsMap, err := parseServerTransportOptions(serverTransportOptions)
+   if err != nil {
+   return nil, 
envError(fmt.Sprintf(TOR_PT_SERVER_TRANSPORT_OPTIONS: %q: %s, 
serverTransportOptions, err.Error()))
+   }
+
// Get the list of all requested bindaddrs.
serverBindaddr, err := getenvRequired(TOR_PT_SERVER_BINDADDR)
if err != nil {
@@ -420,6 +431,7 @@ func getServerBindaddrs(methodNames []string) ([]Bindaddr, 
error) {
return nil, 
envError(fmt.Sprintf(TOR_PT_SERVER_BINDADDR: %q: %s, spec, err.Error()))
}
bindaddr.Addr = addr
+   bindaddr.Options = optionsMap[bindaddr.MethodName]
result = append(result, bindaddr)
}
 
diff --git a/pt_test.go b/pt_test.go
index 1d30ff2..1602fa8 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -280,8 +280,8 @@ func TestGetServerBindaddrs(t *testing.T) {
alpha,beta,gamma,
[]string{alpha, beta},
[]Bindaddr{
-   {alpha, net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }},
-   {beta, net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
+   {MethodName: alpha, Addr: net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }},
+   {MethodName: beta, Addr: net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
},
},
{
@@ -301,8 +301,8 @@ func TestGetServerBindaddrs(t *testing.T) {
*,
[]string{alpha, beta},
[]Bindaddr{
-   {alpha, net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }},
-   {beta, net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
+   {MethodName: alpha, Addr: net.TCPAddr{IP: 
net.ParseIP(1.2.3.4), Port: }},
+   {MethodName: beta, Addr: net.TCPAddr{IP: 
net.ParseIP(1:2::3:4), Port: }},
},
},
{
@@ -310,8 +310,8 @@ func TestGetServerBindaddrs(t *testing.T) {
trebuchet,ballista,
[]string{trebuchet, ballista},
[]Bindaddr{
-   {trebuchet, net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 1984}},
-   {ballista, net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 4891}},
+   {MethodName: trebuchet, Addr: 
net.TCPAddr{IP: net.ParseIP(127.0.0.1), Port: 1984}},
+   {MethodName: ballista, Addr: net.TCPAddr{IP: 
net.ParseIP(127.0.0.1), Port: 4891}},
},
},
}



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


[tor-commits] [goptlib/master] I guess the convention is not to use the package prefix.

2013-12-08 Thread dcf
commit a02de3aac1ba8f439b3043ab450b98fd0fb92869
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:06:55 2013 -0800

I guess the convention is not to use the package prefix.
---
 socks.go |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/socks.go b/socks.go
index 500a1fa..d0b486d 100644
--- a/socks.go
+++ b/socks.go
@@ -118,7 +118,7 @@ func (ln *SocksListener) AcceptSocks() (*SocksConn, error) {
return conn, nil
 }
 
-// Returns socks4, suitable to be included in a call to pt.Cmethod.
+// Returns socks4, suitable to be included in a call to Cmethod.
 func (ln *SocksListener) Version() string {
return socks4
 }



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


[tor-commits] [goptlib/master] Matching whitespace.

2013-12-08 Thread dcf
commit eb552746f94bd2012de16c9c606b1298a144390e
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 11:13:51 2013 -0800

Matching whitespace.
---
 socks.go |2 --
 1 file changed, 2 deletions(-)

diff --git a/socks.go b/socks.go
index d0b486d..bd57f40 100644
--- a/socks.go
+++ b/socks.go
@@ -58,9 +58,7 @@ func (conn *SocksConn) Reject() error {
 // if err != nil {
 // return err
 // }
-//
 // // do something with conn and remote
-//
 // return nil
 // }
 // ...



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


[tor-commits] [goptlib/master] Nicer example, don't presume we're in a loop.

2013-12-08 Thread dcf
commit a10a38f710c4467ba5f01c9509415daec8465fed
Author: David Fifield da...@bamsoftware.com
Date:   Sun Dec 8 19:23:08 2013 -0800

Nicer example, don't presume we're in a loop.
---
 pt.go |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pt.go b/pt.go
index 39e7471..ec2407f 100644
--- a/pt.go
+++ b/pt.go
@@ -264,14 +264,14 @@ func Smethod(name string, addr net.Addr) {
 // will be added to the server's extrainfo document.
 //
 // This is an example of how to check for a required option:
-// args := pt.Args{}
 // secret, ok := bindaddr.Options.Get(shared-secret)
-// if !ok {
+// if ok {
+// args := pt.Args{}
+// args.Add(shared-secret, secret)
+// pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), args)
+// } else {
 // pt.SmethodError(bindaddr.MethodName, need a shared-secret 
option)
-// continue
 // }
-// args.Add(shared-secret, secret)
-// pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), args)
 // Or, if you just want to echo back the options provided by Tor from the
 // TransportServerOptions configuration,
 // pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), bindaddr.Options)

___
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] Disable HTTPS-Everywhere's first run tooltips.

2013-12-08 Thread mikeperry
commit 5153caee05ee3fdb8d84a7e2aacb1af1c91fd61b
Author: Mike Perry mikeperry-...@torproject.org
Date:   Tue Dec 3 05:25:05 2013 -0800

Disable HTTPS-Everywhere's first run tooltips.
---
 .../Data/Browser/profile.default/preferences/extension-overrides.js   |1 +
 .../Data/Browser/profile.default/preferences/extension-overrides.js   |1 +
 .../Data/Browser/profile.default/preferences/extension-overrides.js   |1 +
 3 files changed, 3 insertions(+)

diff --git 
a/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
 
b/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
index dff61f5..206f868 100644
--- 
a/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
+++ 
b/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -13,6 +13,7 @@ pref(extensions.torbutton.tz_string, UTC+00:00);
 
 # HTTPS Everywhere Preferences:
 pref(extensions.https_everywhere._observatory.popup_shown, true);
+pref(extensions.https_everywhere.toolbar_hint_shown, true);
 
 # NoScript Preferences:
 pref(capability.policy.maonoscript.javascript.enabled, allAccess);
diff --git 
a/Bundle-Data/mac/Data/Browser/profile.default/preferences/extension-overrides.js
 
b/Bundle-Data/mac/Data/Browser/profile.default/preferences/extension-overrides.js
index dff61f5..206f868 100644
--- 
a/Bundle-Data/mac/Data/Browser/profile.default/preferences/extension-overrides.js
+++ 
b/Bundle-Data/mac/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -13,6 +13,7 @@ pref(extensions.torbutton.tz_string, UTC+00:00);
 
 # HTTPS Everywhere Preferences:
 pref(extensions.https_everywhere._observatory.popup_shown, true);
+pref(extensions.https_everywhere.toolbar_hint_shown, true);
 
 # NoScript Preferences:
 pref(capability.policy.maonoscript.javascript.enabled, allAccess);
diff --git 
a/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
 
b/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
index dff61f5..206f868 100644
--- 
a/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
+++ 
b/Bundle-Data/windows/Data/Browser/profile.default/preferences/extension-overrides.js
@@ -13,6 +13,7 @@ pref(extensions.torbutton.tz_string, UTC+00:00);
 
 # HTTPS Everywhere Preferences:
 pref(extensions.https_everywhere._observatory.popup_shown, true);
+pref(extensions.https_everywhere.toolbar_hint_shown, true);
 
 # NoScript Preferences:
 pref(capability.policy.maonoscript.javascript.enabled, allAccess);



___
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] Pull git updates if we're not verifying tags.

2013-12-08 Thread mikeperry
commit bfa5ab28e2d27499cdebcdc656751d0b555e1e37
Author: Mike Perry mikeperry-...@torproject.org
Date:   Mon Dec 2 17:24:31 2013 -0800

Pull git updates if we're not verifying tags.

The tags are likely branches in that case.
---
 gitian/fetch-inputs.sh |   23 +++
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 5831002..9f54f61 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -97,6 +97,13 @@ update_git() {
   if [ -n $tag ]; then
 (cd $dir  git checkout $tag)
   fi
+
+  # If we're not verifying tags, then some of the tags
+  # may actually be branch names that require an update
+  if [ $VERIFY_TAGS -eq 0 -a -n $tag ];
+  then
+(cd $dir  git pull || true )
+  fi
 }
 
 checkout_mingw() {
@@ -246,14 +253,14 @@ cd inputs
 while read dir url tag; do
   update_git $dir $url $tag
 done  EOF
-tbb-windows-installer https://github.com/moba/tbb-windows-installer.git
-openssl   https://github.com/nmathewson/openssl.git
-zlib  https://github.com/madler/zlib.git
-libevent  https://github.com/libevent/libevent.git
-tor-launcher  https://git.torproject.org/tor-launcher.git
-tor   https://git.torproject.org/tor.git
-torbutton https://git.torproject.org/torbutton.git
-https-everywhere  https://git.torproject.org/https-everywhere.git
+tbb-windows-installer https://github.com/moba/tbb-windows-installer.git 
$NSIS_TAG
+openssl   https://github.com/nmathewson/openssl.git $OPENSSL_TAG
+zlib  https://github.com/madler/zlib.git   $ZLIB_TAG
+libevent  https://github.com/libevent/libevent.git $LIBEVENT_TAG
+tor   https://git.torproject.org/tor.git  $TOR_TAG
+https-everywhere  https://git.torproject.org/https-everywhere.git 
$HTTPSE_TAG
+torbutton https://git.torproject.org/torbutton.git
$TORBUTTON_TAG
+tor-launcher  https://git.torproject.org/tor-launcher.git 
$TORLAUNCHER_TAG
 tor-browser   https://git.torproject.org/tor-browser.git  
$TORBROWSER_TAG
 EOF
 



___
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] Update NoScript version.

2013-12-08 Thread mikeperry
commit f670968b07c3be3a1ccab6404c8fccad0efedcf4
Author: Mike Perry mikeperry-...@torproject.org
Date:   Tue Dec 3 16:39:11 2013 -0800

Update NoScript version.
---
 gitian/versions   |4 ++--
 gitian/versions.alpha |4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gitian/versions b/gitian/versions
index d0e1a51..571b2d3 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -24,7 +24,7 @@ PYTHON_VER=2.7.5
 
 ## File names for the source packages
 # OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.2-fx+fn+sm.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.7-sm+fx+fn.xpi
 
TOOLCHAIN4_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
 OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
 MINGW_PACKAGE=mingw-w64-svn-snapshot.zip
@@ -37,7 +37,7 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
 # OPENSSL_HASH=f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3
 OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
 
TOOLCHAIN4_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=52b309f2e5ca1bee4d0f97cbb342fdac3be6a447c35f744a90348df55eea635f
+NOSCRIPT_HASH=5ac1a5c727a5101fd7673ba48179a52ca1804149ed1b67e6172724606355440e
 MINGW_HASH=457f11d29f6e95425d190711a73955fa54a98a2113ce2c2bfd76291be71e3e2b
 MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
 
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 78033c1..fdbabfc 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -24,7 +24,7 @@ PYTHON_VER=2.7.5
 
 ## File names for the source packages
 # OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.2-fx+fn+sm.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.7-sm+fx+fn.xpi
 TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
 OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
 MINGW_PACKAGE=mingw-w64-svn-snapshot.zip
@@ -37,7 +37,7 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
 # OPENSSL_HASH=f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3
 OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
 
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
-NOSCRIPT_HASH=52b309f2e5ca1bee4d0f97cbb342fdac3be6a447c35f744a90348df55eea635f
+NOSCRIPT_HASH=5ac1a5c727a5101fd7673ba48179a52ca1804149ed1b67e6172724606355440e
 MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
 MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
 

___
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] Update the Gitian Firefox descriptor for Mac OS X

2013-12-08 Thread mikeperry
commit 7e4c6fd54c0ec46a2ccfceca5b6e9c649572dec4
Author: Georg Koppen ge...@getfoxyproxy.org
Date:   Mon Dec 2 05:26:17 2013 -0800

Update the Gitian Firefox descriptor for Mac OS X

Should now be able to build with our new cross-compiler for Firefox 24 ESRs.
---
 gitian/descriptors/mac/gitian-firefox.yml |   38 +++--
 gitian/make-vms.sh|9 +++
 gitian/versions.alpha |6 ++---
 3 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/gitian/descriptors/mac/gitian-firefox.yml 
b/gitian/descriptors/mac/gitian-firefox.yml
index d6e5b4a..74b4287 100644
--- a/gitian/descriptors/mac/gitian-firefox.yml
+++ b/gitian/descriptors/mac/gitian-firefox.yml
@@ -3,8 +3,8 @@ name: torbrowser-mac
 suites:
 - precise
 architectures:
-- i386
-packages: 
+- amd64
+packages:
 - git-core
 - unzip
 - zip
@@ -12,7 +12,7 @@ packages:
 - autoconf2.13
 - faketime
 - yasm
-#- libssl0.9.8
+- zlib1g-dev
 reference_datetime: 2000-01-01 00:00:00
 remotes:
 - url: https://git.torproject.org/tor-browser.git;
@@ -20,26 +20,17 @@ remotes:
 files:
 - torbrowser.version
 - apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
-- 
multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
-- i686-apple-darwin11-gcc
-- i686-apple-darwin11-g++
-- i686-apple-darwin11-ld
+- x86_64-apple-darwin10.tar.xz
 - re-dzip.sh
 - dzip.sh
 - python.tar.bz2
 - versions
-#- apple-x86-gcc_4.2.1~5646.1flosoft2_i386.deb
-#- apple-x86-odcctools_758.159-0flosoft11_i386.deb
 script: |
   INSTDIR=$HOME/install/
   source versions
   export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
   export FAKETIME=$REFERENCE_DATETIME
   export TZ=UTC
-  export CFLAGS=-isysroot /usr/lib/apple/SDKs/MacOSX10.6.sdk/
-  export CXXFLAGS=$CFLAGS
-  export LDFLAGS=$CFLAGS
-  export PATH=$PATH:/usr/apple-osx/bin/
   export LC_ALL=C
   umask 0022
   #
@@ -60,14 +51,13 @@ script: |
   fi
   #
   sudo dpkg -i *.deb
-  chmod 755 i686*
-  sudo cp i686* /usr/bin/
-  cd /usr
-  sudo tar -Jxvf /home/ubuntu/build/multiarch-darwin*tar.xz
-  cd ~/build
+  tar -xavf x86_64-apple-darwin10.tar.xz
+  # XXX: Needed for the otool patch. But we should replace that one with a
+  # better solution. See: comment 15 in
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=936115
+  export PATH=$PATH:/home/ubuntu/build/x-tools/x86_64-apple-darwin10/bin
   # FIXME: path hacks:
   sudo mkdir -p /System/Library/
-  sudo ln -s /usr/apple-osx/bin/i686-apple-darwin11-otool /usr/bin/otool
   sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk 
/usr/lib/apple/SDKs/MacOSX10.5.sdk
   sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk 
/usr/lib/apple/SDKs/MacOSX10.5.sdk
   sudo ln -s /usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ 
/System/Library/
@@ -88,16 +78,16 @@ script: |
   make -f client.mk configure
   find -type f | xargs touch --date=$REFERENCE_DATETIME
   #
-  # XXX: Probably should fix this some other way than just letting it fail 
once..
-  make $MAKEOPTS -f client.mk build HOST_CFLAGS= HOST_CXXFLAGS= # || true
-  #make $MAKEOPTS -f client.mk build HOST_CFLAGS= HOST_CXXFLAGS= 
CC=apple-osx-gcc $CFLAGS
+  make $MAKEOPTS -f client.mk build
   #
-  make -C obj-* package INNER_MAKE_PACKAGE=true
-  cp -a obj-*/dist/firefox/* $INSTDIR
+  make -C obj-macos package INNER_MAKE_PACKAGE=true
+  cp -a obj-macos/dist/firefox/* $INSTDIR
   # Remove firefox-bin (we don't use it, see ticket #10126)
   rm -f $INSTDIR/Browser/firefox-bin
   #
   cd $INSTDIR
+  # XXX: Find a better way to tell that we are having a 32bit build
+  GBUILD_BITS=32
   ~/build/re-dzip.sh TorBrowser.app/Contents/MacOS/omni.ja
   ~/build/re-dzip.sh TorBrowser.app/Contents/MacOS/webapprt/omni.ja
   if [ -f TorBrowser.app/Contents/MacOS/browser/omni.ja  ]; then # FF24 
includes a third .ja
diff --git a/gitian/make-vms.sh b/gitian/make-vms.sh
index d5615a6..d4902ce 100755
--- a/gitian/make-vms.sh
+++ b/gitian/make-vms.sh
@@ -81,3 +81,12 @@ do
   echo
 done
 
+while ! build_and_test_vm precise amd64 64
+do
+  stop-target 64 precise
+  rm ./base-precise-amd64*
+  echo
+  echo Lucid amd64 VM build failed... Trying again
+  echo
+done
+
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index ab6e9cb..0f843c5 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -25,7 +25,7 @@ PYTHON_VER=2.7.5
 ## File names for the source packages
 # OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
 NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.2-fx+fn+sm.xpi
-TOOLCHAIN4_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
+TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
 OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
 MINGW_PACKAGE=mingw-w64-svn-snapshot.zip
 MSVCR100_PACKAGE=msvcr100.dll
@@ -36,14 +36,14 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
 # Hashes for packages with weak sigs or no sigs
 # OPENSSL_HASH=f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3
 

[tor-commits] [tor-browser-bundle/master] Back out the python building from Mac and Windows.

2013-12-08 Thread mikeperry
commit 489bb4b51fa057e83d711a03beb5aa4883bad935
Author: Mike Perry mikeperry-...@torproject.org
Date:   Tue Dec 3 02:24:17 2013 -0800

Back out the python building from Mac and Windows.

Their ubuntu base version already included 2.7. No need to build it.
---
 gitian/descriptors/mac/gitian-firefox.yml |   15 ---
 gitian/descriptors/windows/gitian-firefox.yml |   16 
 2 files changed, 31 deletions(-)

diff --git a/gitian/descriptors/mac/gitian-firefox.yml 
b/gitian/descriptors/mac/gitian-firefox.yml
index 74b4287..e252888 100644
--- a/gitian/descriptors/mac/gitian-firefox.yml
+++ b/gitian/descriptors/mac/gitian-firefox.yml
@@ -12,7 +12,6 @@ packages:
 - autoconf2.13
 - faketime
 - yasm
-- zlib1g-dev
 reference_datetime: 2000-01-01 00:00:00
 remotes:
 - url: https://git.torproject.org/tor-browser.git;
@@ -23,7 +22,6 @@ files:
 - x86_64-apple-darwin10.tar.xz
 - re-dzip.sh
 - dzip.sh
-- python.tar.bz2
 - versions
 script: |
   INSTDIR=$HOME/install/
@@ -37,19 +35,6 @@ script: |
   mkdir -p $INSTDIR/TorBrowser.app/Contents/MacOS/
   mkdir -p $OUTDIR/
   #
-  # XXX: Refactor this out into a separate descriptor
-  # Fx 24 ESR does not work with Python  2.7 anymore. But 10.04 does only ship
-  # with Python 2.6. Thus, we compile 2.7 ourselves...
-  if [ ${TORBROWSER_VERSION::3} != 3.0 ]; then
-mkdir python
-cd python
-tar -xjvf ../python.tar.bz2
-Python-*/configure
-make
-sudo make install
-cd ..
-  fi
-  #
   sudo dpkg -i *.deb
   tar -xavf x86_64-apple-darwin10.tar.xz
   # XXX: Needed for the otool patch. But we should replace that one with a
diff --git a/gitian/descriptors/windows/gitian-firefox.yml 
b/gitian/descriptors/windows/gitian-firefox.yml
index 94b6ba0..f985b56 100644
--- a/gitian/descriptors/windows/gitian-firefox.yml
+++ b/gitian/descriptors/windows/gitian-firefox.yml
@@ -32,7 +32,6 @@ files:
 - i686-w64-mingw32-g++
 - i686-w64-mingw32-ld
 - msvcr100.dll
-- python.tar.bz2
 - versions
 script: |
   INSTDIR=$HOME/install
@@ -58,21 +57,6 @@ script: |
   # linked against msvcrt by default. See bug 9084 for a more detailed
   # discussion.
 
-  #
-  # XXX: Refactor this out into a separate descriptor
-  # Fx 24 ESR does not work with Python  2.7 anymore. But 10.04 does only ship
-  # with Python 2.6. Thus, we compile 2.7 ourselves...
-  if [ ${TORBROWSER_VERSION::3} != 3.0 ]; then
-mkdir python
-cd python
-tar -xjvf ../python.tar.bz2
-Python-*/configure
-make
-sudo make install
-cd ..
-  fi
-  #
-
   # FIXME: We need sudo for all of this because otherwise
   # the toolchain can't find the alternate prefix for the CRT headers :/ 
 



___
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] Record tor-browser commit in bundle.inputs.

2013-12-08 Thread mikeperry
commit 28acf4aca081bceb84d2c3d178987fe094574b01
Author: Mike Perry mikeperry-...@torproject.org
Date:   Sun Dec 8 20:31:02 2013 -0800

Record tor-browser commit in bundle.inputs.

How did we leave this out?
---
 gitian/record-inputs.sh |1 +
 1 file changed, 1 insertion(+)

diff --git a/gitian/record-inputs.sh b/gitian/record-inputs.sh
index 4fc79dd..0d44b1a 100755
--- a/gitian/record-inputs.sh
+++ b/gitian/record-inputs.sh
@@ -48,6 +48,7 @@ fi
 
 echo `cd zlib  git log --format=%H -1 $ZLIB_TAG` zlib.git  bundle.inputs
 echo `cd tor  git log --format=%H -1 $TOR_TAG` tor.git  bundle.inputs
+echo `cd tor-browser  git log --format=%H -1 $TORBROWSER_TAG` 
tor-browser.git  bundle.inputs
 echo `cd torbutton  git log --format=%H -1 $TORBUTTON_TAG` torbutton.git 
 bundle.inputs
 echo `cd tor-launcher  git log --format=%H -1 $TORLAUNCHER_TAG` 
tor-launcher.git  bundle.inputs
 echo `cd https-everywhere  git log --format=%H -1 $HTTPSE_TAG` 
https-everywhere.git  bundle.inputs

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


[tor-commits] [tor-browser/tor-browser-24.1.1esr-1] fixup! Add mozIThirdPartyUtil.getFirstPartyURI API

2013-12-08 Thread mikeperry
commit 2df3a6e502c52c4a8e3bc34921aad0eda80af340
Author: Kathy Brade br...@pearlcrescent.com
Date:   Fri Dec 6 10:54:24 2013 -0500

fixup! Add mozIThirdPartyUtil.getFirstPartyURI API

Add mozIThirdPartyUtil.getFirstPartyURIFromChannel() API.

Marked getFirstPartyURI() as [noscript] since it cannot be
called from JS due to its use of an nsIDocument parameter.
See Tor bug # 8167.
---
 content/base/src/ThirdPartyUtil.cpp|   20 +++-
 content/base/src/ThirdPartyUtil.h  |2 ++
 netwerk/base/public/mozIThirdPartyUtil.idl |   24 ++--
 3 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/content/base/src/ThirdPartyUtil.cpp 
b/content/base/src/ThirdPartyUtil.cpp
index 6c17974..55eb316 100644
--- a/content/base/src/ThirdPartyUtil.cpp
+++ b/content/base/src/ThirdPartyUtil.cpp
@@ -411,11 +411,21 @@ ThirdPartyUtil::GetBaseDomain(nsIURI* aHostURI,
   return NS_OK;
 }
 
+// Not scriptable due to the use of an nsIDocument parameter.
 NS_IMETHODIMP
 ThirdPartyUtil::GetFirstPartyURI(nsIChannel *aChannel,
  nsIDocument *aDoc,
  nsIURI **aOutput)
 {
+  return GetFirstPartyURIInternal(aChannel, aDoc, true, aOutput);
+}
+
+nsresult
+ThirdPartyUtil::GetFirstPartyURIInternal(nsIChannel *aChannel,
+ nsIDocument *aDoc,
+ bool aLogErrors,
+ nsIURI **aOutput)
+{
   nsresult rv = NS_ERROR_NULL_POINTER;
 
   if (!aOutput)
@@ -490,7 +500,7 @@ ThirdPartyUtil::GetFirstPartyURI(nsIChannel *aChannel,
   }
 
   // Log failure to error console.
-  if (NS_FAILED(rv)) {
+  if (aLogErrors  NS_FAILED(rv)) {
 nsCOMPtrnsIConsoleService console
   (do_GetService(NS_CONSOLESERVICE_CONTRACTID));
 if (console) {
@@ -525,6 +535,14 @@ ThirdPartyUtil::GetFirstPartyURI(nsIChannel *aChannel,
 }
 
 NS_IMETHODIMP
+ThirdPartyUtil::GetFirstPartyURIFromChannel(nsIChannel *aChannel,
+bool aLogErrors,
+nsIURI **aOutput)
+{
+  return GetFirstPartyURIInternal(aChannel, nullptr, aLogErrors, aOutput);
+}
+
+NS_IMETHODIMP
 ThirdPartyUtil::GetFirstPartyHostForIsolation(nsIURI *aFirstPartyURI,
   nsACString aHost)
 {
diff --git a/content/base/src/ThirdPartyUtil.h 
b/content/base/src/ThirdPartyUtil.h
index 93d3e1f..8777f44 100644
--- a/content/base/src/ThirdPartyUtil.h
+++ b/content/base/src/ThirdPartyUtil.h
@@ -30,6 +30,8 @@ private:
   bool SchemeIsWhiteListed(nsIURI *aURI);
   static already_AddRefednsIURI GetURIFromWindow(nsIDOMWindow* aWin);
   static nsresult GetOriginatingURI(nsIChannel  *aChannel, nsIURI **aURI);
+  nsresult GetFirstPartyURIInternal(nsIChannel *aChannel, nsIDocument *aDoc,
+bool aLogErrors, nsIURI **aOutput);
 
   nsCOMPtrnsIEffectiveTLDService mTLDService;
   nsCOMPtrnsICookiePermission mCookiePermissions;
diff --git a/netwerk/base/public/mozIThirdPartyUtil.idl 
b/netwerk/base/public/mozIThirdPartyUtil.idl
index b602ac3..6137274 100644
--- a/netwerk/base/public/mozIThirdPartyUtil.idl
+++ b/netwerk/base/public/mozIThirdPartyUtil.idl
@@ -161,8 +161,28 @@ interface mozIThirdPartyUtil : nsISupports
* @throws if the URI cannot be obtained or the URI lacks a hostname and the
* URI's scheme is not white listed.
*/
-  nsIURI getFirstPartyURI(in nsIChannel aChannel,
-  in nsIDocument aDoc);
+  [noscript] nsIURI getFirstPartyURI(in nsIChannel aChannel,
+ in nsIDocument aDoc);
+
+  /**
+   * getFirstPartyURIFromChannel
+   *
+   * Obtain the top-level url bar URI for a channel.
+   *
+   * @param aChannel
+   *An arbitrary channel for some content element of a first party
+   *load.
+   *
+   * @param aLogErrors
+   *If true, log errors to the Error Console.
+   *
+   * @return the first party url bar URI for the load.
+   *
+   * @throws if the URI cannot be obtained or the URI lacks a hostname and the
+   * URI's scheme is not white listed.
+   */
+  nsIURI getFirstPartyURIFromChannel(in nsIChannel aChannel,
+ in bool aLogErrors);
 
   /**
* getFirstPartyHostForIsolation

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


[tor-commits] [torbutton/master] Bug #8167: Update cache isolation to use getFirstPartyURIFromChannel()

2013-12-08 Thread mikeperry
commit 46dda37f29379b74cb43460befd90792065df8e9
Author: Kathy Brade br...@pearlcrescent.com
Date:   Sun Dec 8 21:08:37 2013 -0800

Bug #8167: Update cache isolation to use getFirstPartyURIFromChannel()

Required for cache isolation under FF24.
---
 src/chrome/content/stanford-safecache.js |   22 ++
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/chrome/content/stanford-safecache.js 
b/src/chrome/content/stanford-safecache.js
index 48f6d88..0ef52ad 100644
--- a/src/chrome/content/stanford-safecache.js
+++ b/src/chrome/content/stanford-safecache.js
@@ -61,7 +61,10 @@ function SSC_dump(msg) {
 
 function SSC_RequestListener(controller) {
   this.controller = controller;
-  this.cookie_permissions = 
Cc[@mozilla.org/cookie/permission;1].getService(Ci.nsICookiePermission);
+  this.thirdPartyUtil = Cc[@mozilla.org/thirdpartyutil;1].
+getService(Ci.mozIThirdPartyUtil);
+  this.cookie_permissions = Cc[@mozilla.org/cookie/permission;1].
+getService(Ci.nsICookiePermission);
 }
 
 SSC_RequestListener.prototype =
@@ -77,11 +80,13 @@ SSC_RequestListener.prototype =
 subject.QueryInterface(Components.interfaces.nsIHttpChannel);
 subject.QueryInterface(Components.interfaces.nsIHttpChannelInternal);
 subject.QueryInterface(Components.interfaces.nsICachingChannel);
+subject.QueryInterface(Components.interfaces.nsIChannel);
 this.onModifyRequest(subject);
   } else if (topic == 'http-on-examine-response') {
 subject.QueryInterface(Components.interfaces.nsIHttpChannel);
 subject.QueryInterface(Components.interfaces.nsIHttpChannelInternal);
 subject.QueryInterface(Components.interfaces.nsICachingChannel);
+subject.QueryInterface(Components.interfaces.nsIChannel);
 this.onExamineResponse(subject);
   }
 } catch(e) {try {torbutton_log(4, SSC: +e);} catch(ex) {}} 
@@ -135,13 +140,22 @@ SSC_RequestListener.prototype =
 } else if(!parent_host) {
   // Questionable first party interaction..
   try {
-var anuri = this.cookie_permissions.getOriginatingURI(channel);
+var anuri = null;
+try {
+  anuri = this.thirdPartyUtil.getFirstPartyURIFromChannel(channel, 
false);
+} catch (e) {
+  torbutton_safelog(2, FirstParty API failed to get parent: +e+ , 
channel.URI.spec);
+  // We are not using the TBB based on ESR 24. Falling back to the old
+  // method.
+  anuri = this.cookie_permissions.getOriginatingURI(channel);
+}
 parent_host = anuri.host;
 parent_spec = anuri.spec;
   } catch(e) {
-torbutton_safelog(2, Cookie API failed to get parent: 
+e,channel.URI.spec);
+// XXX: This can still fail for OCSP and other windowless requests..
+torbutton_safelog(3, Cookie API failed to get parent: +e+ 
,channel.URI.spec);
 if (!channel.referrer) {
-  torbutton_safelog(3, SSC: No parent for , channel.URI.spec);
+  torbutton_safelog(3, SSC: No cache isolation parent for , 
channel.URI.spec);
 } else {
   parent_host = channel.referrer.host;
   parent_spec = channel.referrer.spec;

___
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] Bump HTTPS-Everywhere version.

2013-12-08 Thread mikeperry
commit 502c3bab938b7181c3c5b0c64562b8e88759d6d2
Author: Mike Perry mikeperry-...@torproject.org
Date:   Sun Dec 8 21:09:48 2013 -0800

Bump HTTPS-Everywhere version.

This makes use of a custom HTTPS-Everywhere release that has better support
for enabling/disabling mixed content blocking and associated broken 
rulesets.
---
 gitian/versions.alpha |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index fdbabfc..b8d8b82 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -8,7 +8,7 @@ TOR_TAG=tor-0.2.4.18-rc
 OPENSSL_TAG=openssl-101e-no-gmt-time-v1
 TORLAUNCHER_TAG=master
 TORBUTTON_TAG=master
-HTTPSE_TAG=3.4.2
+HTTPSE_TAG=3.4.4tbb
 NSIS_TAG=v0.1
 ZLIB_TAG=v1.2.8
 LIBEVENT_TAG=release-2.0.21-stable

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


[tor-commits] [metrics-web/master] Add 0.2.5 to known versions, change color palette.

2013-12-08 Thread karsten
commit e51bd2b036fabba330115483562508d110bc7f3c
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Mon Dec 9 07:07:09 2013 +0100

Add 0.2.5 to known versions, change color palette.

The Accent palette only supports up to 8 different colors, but by now we
have 9 Tor versions which could, in theory, all be displayed in a single
graph.  Paired supports up to 12 different colors.
---
 rserve/graphs.R |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/rserve/graphs.R b/rserve/graphs.R
index b862584..bf6f8c7 100644
--- a/rserve/graphs.R
+++ b/rserve/graphs.R
@@ -385,9 +385,9 @@ plot_versions - function(start, end, path) {
   s - data.frame(date = as.Date(s$date, %Y-%m-%d), version = s$version,
   relays = s$relays)
   known_versions - c(0.1.0, 0.1.1, 0.1.2, 0.2.0, 0.2.1,
-0.2.2, 0.2.3, 0.2.4)
+0.2.2, 0.2.3, 0.2.4, 0.2.5)
   colours - data.frame(breaks = known_versions,
-values = brewer.pal(length(known_versions), Accent),
+values = brewer.pal(length(known_versions), Paired),
 stringsAsFactors = FALSE)
   versions - s[s$version %in% known_versions, ]
   visible_versions - sort(unique(versions$version))

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


[tor-commits] [check/master] Purge old data

2013-12-08 Thread arlo
commit f4f102e3e3d6f065910f2388b3bf87bd753de2e9
Author: Arlo Breault arlo...@gmail.com
Date:   Sun Dec 8 22:39:27 2013 -0800

Purge old data

48hrs should be sufficient.
---
 scripts/cpexits.sh |4 
 1 file changed, 4 insertions(+)

diff --git a/scripts/cpexits.sh b/scripts/cpexits.sh
index fb9da8e..c4d3f42 100755
--- a/scripts/cpexits.sh
+++ b/scripts/cpexits.sh
@@ -5,8 +5,12 @@ TORDATA=/srv/tor
 DNSEL=/srv/tordnsel.torproject.org/state
 NOW=$(date +%Y-%m-%d-%H-%M-%S)
 
+find $CHECK/data/exit-lists -type f -mtime +1 -delete
 cat $DNSEL/exit-addresses $DNSEL/exit-addresses.new  
$CHECK/data/exit-lists/$NOW
+
+find $CHECK/data/consensuses -type f -mtime +1 -delete
 cp $TORDATA/cached-consensus $CHECK/data/consensuses/$NOW-consensus
+
 cat $TORDATA/cached-descriptors $TORDATA/cached-descriptors.new  
$CHECK/data/cached-descriptors
 
 cd $CHECK



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


[tor-commits] [check/master] Add a donation button

2013-12-08 Thread arlo
commit b2fbe9a099d01dab41fdba3d377715bea19f1ee3
Author: Arlo Breault arlo...@gmail.com
Date:   Sun Dec 8 22:40:52 2013 -0800

Add a donation button
---
 public/base.html  |   45 ++
 public/bulk.html  |6 +
 public/index.html |   69 ++---
 3 files changed, 69 insertions(+), 51 deletions(-)

diff --git a/public/base.html b/public/base.html
index 8414023..bd46b69 100644
--- a/public/base.html
+++ b/public/base.html
@@ -13,6 +13,7 @@
   font-family: Helvetica, sans-serif;
   margin: 0;
 }
+h1 { font-size: 2.4em; }
 a { text-decoration: none; }
 a:hover { text-decoration: underline; }
 ul { margin: 0; padding: 0; }
@@ -22,35 +23,6 @@
   list-style-type: none;
   margin: 0;
 }
-.on { color: green; }
-.off { color: red; }
-.mid { margin: 3em 0; }
-.mid a {
-  text-decoration: underline;
-}
-.small { font-size: 0.8em; }
-.security {
-  margin: 2em 0;
-  padding: 1em;
-  font-size: 1.4em;
-  color: goldenrod;
-  background-color: ghostwhite;
-  border-radius: 5px;
-}
-.security a {
-  color: goldenrod;
-  text-decoration: underline;
-}
-.onion {
-  width: 128px;
-  height: 128px;
-  border: 0;
-  text-decoration: none;
-}
-.form {
-  display: inline;
-  margin-right: 0.4em;
-}
 .content {
   padding: 4em;
 }
@@ -67,20 +39,7 @@
   margin: 0;
   font-size: 0.8em;
 }
-.other {
-  width: 50%;
-  float: left;
-}
-.other p {
-  margin: 1em 4em;
-}
-.other p a {
-  display: block;
-  margin-bottom: 0.4em;
-}
-#js {
-  font-size: 0.8em;
-}
+{{ template css . }}
   /style
 /head
 body
diff --git a/public/bulk.html b/public/bulk.html
index 2460f81..70f3f06 100644
--- a/public/bulk.html
+++ b/public/bulk.html
@@ -1,6 +1,12 @@
 {{ template base.html . }}
 {{ define title }}Bulk Tor Exit Exporter{{ end }}
 {{ define head }}{{ end }}
+{{ define css }}
+  .form {
+display: inline;
+margin-right: 0.4em;
+  }
+{{ end }}
 {{ define body }}
   img src=/torcheck/img/tor-on.png class=onion /
   h4Welcome to the Tor Bulk Exit List exporting tool./h4
diff --git a/public/index.html b/public/index.html
index 763a6eb..eb81799 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,5 +1,56 @@
 {{ template base.html . }}
 {{ define title }}{{ GetText .Lang Are you using Tor? }}{{ end }}
+{{ define css }}
+  .on { color: green; }
+  .off { color: red; }
+  .mid { margin: 3em 0; }
+  .mid a {
+text-decoration: underline;
+  }
+  .small { font-size: 0.8em; }
+  .security {
+margin: 2em 0;
+padding: 1em;
+font-size: 1.4em;
+color: goldenrod;
+background-color: ghostwhite;
+border-radius: 5px;
+  }
+  .security a {
+color: goldenrod;
+text-decoration: underline;
+  }
+  .onion {
+width: 128px;
+height: 128px;
+border: 0;
+text-decoration: none;
+  }
+  #js {
+font-size: 0.8em;
+  }
+  #donate {
+background-color: dodgerblue;
+color: white;
+text-decoration: none;
+font-size: 1.4em;
+font-weight: bold;
+padding: 0.6em 2.4em;
+border-radius: 0.2em;
+display: inline-block;
+  }
+  #links {
+margin-top: 0.6em;
+  }
+  #links li:after {
+content: |;
+padding: 0 0.2em;
+  }
+  #links li:last-child:after {
+content: ;
+padding: 0;
+  }
+{{ end }}
 {{ define head }}
 form action=/ method=get id=lang
   {{ if .Small }}input type=hidden name=small value=1 /{{ end }}
@@ -39,14 +90,16 @@
   {{ GetText .Lang If you are attempting to use a Tor client, please 
refer to the a href=\https://www.torproject.org/\;Tor website/a and 
specifically the a 
href=\https://www.torproject.org/docs/faq#DoesntWork\;instructions for 
configuring your Tor client/a. | UnEscaped }}
 {{ end }}
   /p
-  div class=other
-pa href=https://torproject.org/dist/manual/short-user-manual_{{ 
UserManual .Lang }}.xhtml{{ GetText .Lang Short User Manual }}/a
-{{ GetText .Lang The short 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. }}/p
-  /div
-  div class=other
-pa href=https://tor.stackexchange.com/;{{ GetText .Lang Tor QA 
Site }}/a
-{{ GetText .Lang Questions and answers site for researchers, developers, 
and users of Tor. Hosted on StackExchange. Currently only available in 
English. }}/p
-  /div
+  a id=donate href=https://www.torproject.org/donate/donate.html;Donate 
to Support Tor/a
+  ul id=links
+li
+  a href=https://torproject.org/dist/manual/short-user-manual_{{ 
UserManual .Lang }}.xhtml{{ GetText .Lang Short User Manual }}/a
+/lili
+  a href=https://tor.stackexchange.com/;{{ GetText .Lang Tor QA Site 
}}/a
+/lili
+  a href=https://www.torproject.org/getinvolved/volunteer.html;{{ 
GetText .Lang 

[tor-commits] [check/master] Update translations

2013-12-08 Thread arlo
commit 9133fe713fffd7e8207065615ec92c005e7f8320
Author: Arlo Breault arlo...@gmail.com
Date:   Sun Dec 8 22:48:20 2013 -0800

Update translations
---
 check.pot |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/check.pot b/check.pot
index d44533e..0b06910 100644
--- a/check.pot
+++ b/check.pot
@@ -72,13 +72,13 @@ msgstr 
 msgid Short User Manual
 msgstr 
 
-msgid The short 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.
+msgid Donate to Support Tor
 msgstr 
 
 msgid Tor QA Site
 msgstr 
 
-msgid Questions and answers site for researchers, developers, and users of 
Tor. Hosted on StackExchange. Currently only available in English.
+msgid Volunteer
 msgstr 
 
 msgid JavaScript is enabled.

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