[tor-commits] [translation/https_everywhere] Update translations for https_everywhere
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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()
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.
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.
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
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
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
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