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

[webwml/staging] Clarify mirroring instructions based on suggestion by StalkR
by arma@torproject.org 23 Oct '14
by arma@torproject.org 23 Oct '14
23 Oct '14
commit 2be237ed0acb6d51d2aaa03f9bb1c921636841b7
Author: Sebastian Hahn <sebastian(a)torproject.org>
Date: Tue Oct 21 08:50:51 2014 +0200
Clarify mirroring instructions based on suggestion by StalkR
---
docs/en/running-a-mirror.wml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/en/running-a-mirror.wml b/docs/en/running-a-mirror.wml
index c6cb06b..53354a9 100644
--- a/docs/en/running-a-mirror.wml
+++ b/docs/en/running-a-mirror.wml
@@ -26,8 +26,8 @@
</p>
<tt>
<pre>
-rsync -av --exclude dist --delete rsync://rsync.torproject.org/website-mirror tor-mirror/
-rsync -av --delete rsync://rsync.torproject.org/dist-mirror tor-mirror/dist/
+rsync -aq --exclude dist --delete rsync://rsync.torproject.org/website-mirror/ /var/www/mirrors/torproject.org
+rsync -aq --delete rsync://rsync.torproject.org/dist-mirror/ /var/www/mirrors/torproject.org/dist
</pre>
</tt>
1
0
commit ea07f86526a028a658ab60e3658a801e640cf4e8
Author: Roger Dingledine <arma(a)torproject.org>
Date: Wed Oct 22 21:09:47 2014 -0400
another round of mirror updates
---
include/mirrors-table.wmi | 283 ++++++++++++++++++++++++++++++++++++++++-----
include/tor-mirrors.csv | 142 +++++++++++------------
2 files changed, 323 insertions(+), 102 deletions(-)
diff --git a/include/mirrors-table.wmi b/include/mirrors-table.wmi
index 1350b21..3aec4162 100644
--- a/include/mirrors-table.wmi
+++ b/include/mirrors-table.wmi
@@ -1,6 +1,57 @@
<tr>
+ <td>DE</td>
+
+ <td>Netzkonstrukt Berlin</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://mirror.ntzk.de/torproject.org/dist/">http</a></td>
+ <td><a href="http://mirror.ntzk.de/torproject.org/">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
+ <td>NO</td>
+
+ <td>MultiNet AS</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://tor.multinet.no/dist/">http</a></td>
+ <td><a href="http://tor.multinet.no/">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
+ <td>US</td>
+
+ <td>Tor Supporter</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://199.175.55.215/dist/">http</a></td>
+ <td><a href="http://199.175.55.215/">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
<td>EE</td>
<td>CyberSIDE</td>
@@ -52,17 +103,17 @@
<tr>
- <td>AT</td>
+ <td>MX</td>
- <td>TechAsk.IT</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://www.unicorncloud.org/public/torproject.org/dist">http</a></td>
- <td><a href="http://www.unicorncloud.org/public/torproject.org/">http</a></td>
- <td><a href="https://www.unicorncloud.org/public/torproject.org/dist">https</a></td>
- <td><a href="https://www.unicorncloud.org/public/torproject.org/">https</a></td>
+ <td><a href="http://fbnaia.homelinux.net/torproject/dist/">http</a></td>
+ <td><a href="http://fbnaia.homelinux.net/torproject/">http</a></td>
+ <td><a href="https://fbnaia.homelinux.net/torproject/dist/">https</a></td>
+ <td><a href="https://fbnaia.homelinux.net/torproject/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -86,6 +137,40 @@
<tr>
+ <td>AU</td>
+
+ <td>CoffsWiFi</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://torproject.coffswifi.net/dist">http</a></td>
+ <td><a href="http://torproject.coffswifi.net">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
+ <td>IS</td>
+
+ <td>TheOnionRouter</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://www.theonionrouter.com/dist/">http</a></td>
+ <td><a href="http://www.theonionrouter.com/">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
<td>RU</td>
<td>Soviet Anonymous</td>
@@ -103,6 +188,23 @@
<tr>
+ <td>DE</td>
+
+ <td>torservers</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://www.torservers.net/mirrors/torproject.org/dist/">http</a></td>
+ <td><a href="http://www.torservers.net/mirrors/torproject.org/">http</a></td>
+ <td><a href="https://www.torservers.net/mirrors/torproject.org/dist/">https</a></td>
+ <td><a href="https://www.torservers.net/mirrors/torproject.org/">https</a></td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
<td>IS</td>
<td>myRL.net</td>
@@ -188,6 +290,23 @@
<tr>
+ <td>US</td>
+
+ <td>Evil Routers</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://tor1.evilrouters.net/dist/">http</a></td>
+ <td><a href="http://tor1.evilrouters.net/">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
<td>AT</td>
<td>TorNinurtaName</td>
@@ -222,17 +341,17 @@
<tr>
- <td>IS</td>
+ <td>PL</td>
- <td>Tor Supporter</td>
+ <td>Sebastian M. Bobrecki</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://ayo.tl/tor/dist/">http</a></td>
- <td><a href="http://ayo.tl/tor/">http</a></td>
- <td><a href="https://ayo.tl/tor/dist/">https</a></td>
- <td><a href="https://ayo.tl/tor/">https</a></td>
+ <td><a href="http://tor.iv.net.pl/dist/">http</a></td>
+ <td><a href="http://tor.iv.net.pl">http</a></td>
+ <td><a href="https://tor.iv.net.pl/dist/">https</a></td>
+ <td><a href="https://tor.iv.net.pl">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -241,30 +360,30 @@
<td>NL</td>
- <td>Hackabit.nl</td>
+ <td>sky-ip.org</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://hackabit.nl/tor/dist/">http</a></td>
- <td><a href="http://hackabit.nl/tor/">http</a></td>
- <td><a href="https://hackabit.nl/tor/dist/">https</a></td>
- <td><a href="https://hackabit.nl/tor/">https</a></td>
+ <td><a href="http://beautiful-mind.sky-ip.org/dist/">http</a></td>
+ <td><a href="http://beautiful-mind.sky-ip.org/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>NL</td>
+ <td>AT</td>
- <td>sky-ip.org</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://beautiful-mind.sky-ip.org/dist/">http</a></td>
- <td><a href="http://beautiful-mind.sky-ip.org/">http</a></td>
+ <td><a href="http://tor.ludikovsky.name/dist">http</a></td>
+ <td><a href="http://tor.ludikovsky.name/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -290,23 +409,74 @@
<tr>
- <td>DE</td>
+ <td>FR</td>
- <td>torservers</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://www.torservers.net/mirrors/torproject.org/dist/">http</a></td>
- <td><a href="http://www.torservers.net/mirrors/torproject.org/">http</a></td>
- <td><a href="https://www.torservers.net/mirrors/torproject.org/dist/">https</a></td>
- <td><a href="https://www.torservers.net/mirrors/torproject.org/">https</a></td>
+ <td><a href="http://tor-mirror.zeropi.net/dist/">http</a></td>
+ <td><a href="http://tor-mirror.zeropi.net/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
<tr>
+ <td>NL</td>
+
+ <td>BBLN</td>
+
+ <td>Up to date</td>
+
+ <td><a href="ftp://mirror-nl1.bbln.org/torproject/">ftp</a></td>
+ <td><a href="http://mirror-nl1.bbln.org/torproject/dist/">http</a></td>
+ <td><a href="http://mirror-nl1.bbln.org/torproject/">http</a></td>
+ <td><a href="https://mirror-nl1.bbln.org/torproject/dist/">https</a></td>
+ <td><a href="https://mirror-nl1.bbln.org/torproject/">https</a></td>
+ <td><a href="rsync://mirror-nl1.bbln.org/torproject/dist/">rsync</a></td>
+ <td><a href="rsync://mirror-nl1.bbln.org/torproject/">rsync</a></td>
+</tr>
+
+<tr>
+
+ <td>FR</td>
+
+ <td>BBLN</td>
+
+ <td>Up to date</td>
+
+ <td><a href="ftp://mirror-fr1.bbln.org/torproject/">ftp</a></td>
+ <td><a href="http://mirror-fr1.bbln.org/torproject/dist/">http</a></td>
+ <td><a href="http://mirror-fr1.bbln.org/torproject/">http</a></td>
+ <td><a href="https://mirror-fr1.bbln.org/torproject/dist/">https</a></td>
+ <td><a href="https://mirror-fr1.bbln.org/torproject/">https</a></td>
+ <td><a href="rsync://mirror-fr1.bbln.org/torproject/dist/">rsync</a></td>
+ <td><a href="rsync://mirror-fr1.bbln.org/torproject/">rsync</a></td>
+</tr>
+
+<tr>
+
+ <td>FR</td>
+
+ <td>BBLN</td>
+
+ <td>Up to date</td>
+
+ <td><a href="ftp://mirror-fr2.bbln.org/torproject/">ftp</a></td>
+ <td><a href="http://mirror-fr2.bbln.org/torproject/dist/">http</a></td>
+ <td><a href="http://mirror-fr2.bbln.org/torproject/">http</a></td>
+ <td><a href="https://mirror-fr2.bbln.org/torproject/dist/">https</a></td>
+ <td><a href="https://mirror-fr2.bbln.org/torproject/">https</a></td>
+ <td><a href="rsync://mirror-fr2.bbln.org/torproject/dist/">rsync</a></td>
+ <td><a href="rsync://mirror-fr2.bbln.org/torproject/">rsync</a></td>
+</tr>
+
+<tr>
+
<td>DE</td>
<td>Tor Supporter</td>
@@ -314,10 +484,61 @@
<td>Up to date</td>
<td> - </td>
- <td><a href="http://reichster.de/mirrors/torproject.org/dist/">http</a></td>
- <td><a href="http://reichster.de/mirrors/torproject.org/">http</a></td>
- <td><a href="https://reichster.de/mirrors/torproject.org/dist/">https</a></td>
- <td><a href="https://reichster.de/mirrors/torproject.org">https</a></td>
+ <td><a href="http://tor.hoi-polloi.org/dist/">http</a></td>
+ <td><a href="http://tor.hoi-polloi.org">http</a></td>
+ <td><a href="http://tor.hosi-polloi.org/dist/">https</a></td>
+ <td><a href="http://tor.hossi-polloiorg">https</a></td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
+ <td>AT</td>
+
+ <td>TechAsk.IT</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://www.unicorncloud.org/public/torproject.org/dist">http</a></td>
+ <td><a href="http://www.unicorncloud.org/public/torproject.org/">http</a></td>
+ <td><a href="https://www.unicorncloud.org/public/torproject.org/dist">https</a></td>
+ <td><a href="https://www.unicorncloud.org/public/torproject.org/">https</a></td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
+ <td>IS</td>
+
+ <td>Tor Supporter</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://ayo.tl/tor/dist/">http</a></td>
+ <td><a href="http://ayo.tl/tor/">http</a></td>
+ <td><a href="https://ayo.tl/tor/dist/">https</a></td>
+ <td><a href="https://ayo.tl/tor/">https</a></td>
+ <td> - </td>
+ <td> - </td>
+</tr>
+
+<tr>
+
+ <td>DE</td>
+
+ <td>crazyhaze.de</td>
+
+ <td>Up to date</td>
+
+ <td> - </td>
+ <td><a href="http://tor.crazyhaze.de/dist/">http</a></td>
+ <td><a href="http://tor.crazyhaze.de/">http</a></td>
+ <td><a href="https://tor.crazyhaze.de/dist/">https</a></td>
+ <td><a href="https://tor.crazyhaze.de/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
diff --git a/include/tor-mirrors.csv b/include/tor-mirrors.csv
index 5eccf10..0eb6c6c 100644
--- a/include/tor-mirrors.csv
+++ b/include/tor-mirrors.csv
@@ -19,76 +19,76 @@ mirrors[at]ip-connect[dot]vn[dot]ua, IP-Connect LLC, UA, VN, TRUE, TRUE, Yes, ht
torsupport AT tb-itf DOT de, TB-ITF, , DE, Germany, Europe, TRUE, TRUE, No, http://tormirror.tb-itf-tor.de, https://tormirror.tb-itf-tor.de, , , , http://tormirror.tb-itf-tor.de/dist/, https://tormirror.tb-itf-tor.de/dist/,
admin at koreswatanabe dottnet, Tor Supporter, RO, Romania, RO, TRUE, TRUE, No, http://tor-relay.koreswatanabe.net, , , , http://tor-relay.koreswatanabe.net/dist/, , , ,
calebcenter(a)live.com, calebxu.tk, US, United States, US, TRUE, FALSE, NO, http://tor.calebxu.tk, , rsync://calebxu.tk/tor, ftp://ftp.calebxu.tk, http://tor.calebxu.tk/dist, , , ,
-maki(a)maki-chan.de, Maki Hoshisawa, DE, Germany, DE, TRUE, FALSE, NO, http://tor.mirrors.maki-chan.de/, , , , http://tor.mirrors.maki-chan.de/dist/, , , , Sat Aug 23 02:09:07 2014
-info AT zentrum-der-gesundheit DOT de, Zentrum der Gesundheit, DK, Denmark, Europe, TRUE, FALSE, No, http://tor.idnr.ws/, , , , http://tor.idnr.ws/dist/, , , , Tue Sep 2 05:16:00 2014
-mirror ntzk de, Netzkonstrukt Berlin, DE, Germany, Europe, TRUE, FALSE, No, http://mirror.ntzk.de/torproject.org/, , , , http://mirror.ntzk.de/torproject.org/dist/, , , , Mon Oct 20 01:41:46 2014
-info /AT enn /DOT lu, Frenn vun der Enn A.S.B.L., IS, Iceland, Europe, TRUE, FALSE, No, http://torproject.lu/, , , , http://torproject.lu/dist/, , , http://btn6gqzqevlhoryd.onion, Mon Oct 20 01:41:46 2014
-Piratenpartei Bayern, Piratenpartei Bayern, DE, Germany, DE, TRUE, FALSE, NO, http://tormirror.piratenpartei-bayern.de, https://tormirror.piratenpartei-bayern.de, , , http://tormirror.piratenpartei-bayern.de/dist/, http://tormirror.piratenpartei-bayern.de/dist/, , , Sat Oct 18 15:15:08 2014
-Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://tor.hoi-polloi.org, http://tor.hossi-polloiorg, , , http://tor.hoi-polloi.org/dist/, http://tor.hosi-polloi.org/dist/, , , Sat Oct 18 15:15:08 2014
-kevinmg(a)pressfreedomfoundation.org, Freedom of the Press Foundation, US, United States, US, True, False, No, http://tor.pressfreedomfoundation.org, https://tor.pressfreedomfoundation.org, , , http://tor.pressfreedomfoundation.org/dist/, https://tor.pressfreedomfoundation.org/dist/, , , Mon Oct 20 01:41:46 2014
-tor(a)fodt.it // FoDT.it Webteam, FoDT.it, AT, Austria, Europe, TRUE, FALSE, No, http://tor.fodt.it, https://tor.fodt.it, , ftp://ftp.fodt.it/pub/mirrors/torproject.org/, http://tor.fodt.it/dist/, https://tor.fodt.it/dist/, , , Mon Aug 25 04:19:07 2014
-http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, TRUE, TRUE, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Mon Oct 20 01:41:46 2014
-haskell at gmx.es, Tor Supporter, ES, Spain, Europe, TRUE, FALSE, No, http://tor.zilog.es/, , , , http://tor.zilog.es/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, US, United States, US, TRUE, FALSE, No, http://199.175.55.215/, , , , http://199.175.55.215/dist/, , , , Mon Oct 20 01:41:46 2014
-margus.random at mail.ee, CyberSIDE, EE, Estonia, EE, TRUE, FALSE, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, torproject.is, IS, Iceland, IS, TRUE, FALSE, No, http://www.torproject.is/, , , , http://www.torproject.is/dist/, , , , Sun Oct 19 23:41:01 2014
-Tor Fan, spline, DE, Germany, DE, TRUE, FALSE, No, http://tor.spline.de/, https://tor.spline.inf.fu-berlin.de/, rsync://ftp.spline.de/tor, ftp://ftp.spline.de/pub/tor, http://tor.spline.de/dist/, https://tor.spline.inf.fu-berlin.de/dist/, rsync://ftp.spline.de/tor/dist, , Mon Oct 20 01:41:46 2014
-Tor Fan, me0w.cc, RO, Romania, RO, TRUE, FALSE, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, borgmann.tv, DE, Germany, DE, TRUE, FALSE, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, TRUE, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Mon Oct 20 01:41:46 2014
-coralcdn.org, CoralCDN, INT, International, INT, TRUE, FALSE, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , Mon Oct 20 07:41:01 2014
-Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, FALSE, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Mon Oct 20 01:41:46 2014
- mail AT benjamin-meier DOT info, beme it, DE, Germany, DE, TRUE, FALSE, No, http://tor.beme-it.de/, https://tor.beme-it.de/, rsync://tor.beme-it.de/tor, , http://tor.beme-it.de/dist/, https://tor.beme-it.de/dist/, rsync://tor.beme-it.de/tor/dist, , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, MX, Mexico, MX, TRUE, FALSE, No, http://fbnaia.homelinux.net/torproject/, https://fbnaia.homelinux.net/torproject/, , , http://fbnaia.homelinux.net/torproject/dist/, https://fbnaia.homelinux.net/torproject/dist/, , , Mon Oct 20 01:41:46 2014
-webmaster AT askapache DOT com, AskApache, US, California, US, TRUE, FALSE, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Mon Oct 20 01:41:46 2014
-http://sebastian.pfeifer.or.at/, TechAsk.IT, AT, Favoriten, Wien, TRUE, TRUE, No, http://www.unicorncloud.org/public/torproject.org/, https://www.unicorncloud.org/public/torproject.org/, , , http://www.unicorncloud.org/public/torproject.org/dist, https://www.unicorncloud.org/public/torproject.org/dist, , , Mon Oct 20 01:41:46 2014
-root AT amorphis DOT eu, Amorphis, NL, The Netherlands, Europe, TRUE, FALSE, No, http://tor.amorphis.eu/, , , , http://tor.amorphis.eu/dist/, , , , Sun Oct 19 22:21:05 2014
-hackthissite.org, HackThisSite.org, US, United States, US, TRUE, TRUE, No, http://tor.hackthissite.org/, https://tor.hackthissite.org/, , , http://mirror.hackthissite.org/tor, https://mirror.hackthissite.org/tor, , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, FALSE, No, http://tor.linuxlounge.net/, https://tor.linuxlounge.net/, , , http://tor.linuxlounge.net/dist/, https://tor.linuxlounge.net/dist/, , , Mon Oct 20 01:41:46 2014
-paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, TRUE, FALSE, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, cyberarmy, AT, Austria, AT, TRUE, FALSE, No, http://tor.cyberarmy.at/, , , , , , , , Mon Oct 20 01:41:46 2014
-hostmaster AT example DOT com, TheOnionRouter, IS, Iceland, Iceland, TRUE, FALSE, No, http://www.theonionrouter.com/, , , , http://www.theonionrouter.com/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, crazyhaze.de, DE, Germany, DE, TRUE, FALSE, No, http://tor.crazyhaze.de/, https://tor.crazyhaze.de/, , , http://tor.crazyhaze.de/dist/, https://tor.crazyhaze.de/dist/, , , Mon Oct 20 01:41:46 2014
-Tor Fan, chaos darmstadt, DE, Germany, Europe, TRUE, FALSE, No, http://mirrors.chaos-darmstadt.de/tor-mirror/, , , , http://mirrors.chaos-darmstadt.de/tor-mirror/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, Soviet Anonymous, RU, Russia, RU, TRUE, FALSE, No, http://creep.im/tor, https://creep.im/tor, rsync://creep.im/tor, ftp://creep.im/mirrors/tor, http://creep.im/tor/dist/, https://creep.im/tor/dist/, rsync://creep.im/tor-dist, , Mon Oct 20 01:41:46 2014
-Tor Fan, torservers, DE, Germany, DE, TRUE, FALSE, No, http://www.torservers.net/mirrors/torproject.org/, https://www.torservers.net/mirrors/torproject.org/, , , http://www.torservers.net/mirrors/torproject.org/dist/, https://www.torservers.net/mirrors/torproject.org/dist/, , http://hbpvnydyyjbmhx6b.onion/mirrors/torproject.org/, Sun Oct 19 18:24:41 2014
-Tor Fan, torland, GB, United Kingdom, GB, TRUE, FALSE, No, http://mirror.torland.me/torproject.org/, https://mirror.torland.me/torproject.org/, , , http://mirror.torland.me/torproject.org/dist/, https://mirror.torland.me/torproject.org/dist/, , , Mon Oct 20 01:41:46 2014
-Tor Fan, Lightning-bolt.net, CZ, Czech Republic, CZ, TRUE, FALSE, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Mon Oct 20 01:41:46 2014
-IceBear, myRL.net, IS, Iceland, IS, TRUE, FALSE, No, http://tor.myrl.net/, https://tor.myrl.net/, , , http://tor.myrl.net/dist/, https://tor.myrl.net/dist/, , , Mon Oct 20 01:41:46 2014
-kiro AT userzap DOT de, Userzap, DE, Germany, DE, TRUE, FALSE, No, http://torprojekt.userzap.de, https://torprojekt.userzap.de, , , http://torprojekt.userzap.de/dist/, https://torprojekt.userzap.de/dist/, , , Mon Oct 20 01:41:46 2014
-tor(a)eprci.net, EPRCI, US, United States, US, TRUE, FALSE, NO, http://tor.eprci.net/, https://www.eprci.com/tor/, , , http://tor.eprci.net/dist/, https://www.eprci.com/tor/dist/, , , Mon Oct 20 01:41:46 2014
-tor(a)les.net, tor(a)les.net, CA, Canada, CA, TRUE, FALSE, NO, http://tor.les.net/, , , , http://tor.les.net/dist, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, PW, DE, Germany, DE, TRUE, TRUE, NO, http://tor.pw.is/, , , , http://tor.pw.is/dist/, , , , Mon Oct 20 01:41:46 2014
-tor(a)stalkr.net, stalkr.net, FR, France, FR, TRUE, TRUE, NO, http://tor.stalkr.net/, https://tor.stalkr.net/, , , http://tor.stalkr.net/dist/, https://tor.stalkr.net/dist/, , , Mon Oct 20 01:41:46 2014
-doemela[AT]cyberguerrilla[DOT]org, cYbergueRrilLa AnonyMous NeXus, DE, Germany, DE, TRUE, FALSE, NO, https://tor-mirror.cyberguerrilla.org, , , , https://tor-mirror.cyberguerrilla.org/dist/, , , http://6dvj6v5imhny3anf.onion, Mon Oct 20 01:41:46 2014
-contact(a)gtor.org, Gtor, DE, Germany, DE, TRUE, TRUE, NO, http://torproject.gtor.org/, https://torproject.gtor.org/, rsync://torproject.gtor.org/website-mirror/, , http://torproject.gtor.org/dist/, https://torproject.gtor.org/dist/, rsync://torproject.gtor.org/website-mirror/dist/, , Mon Oct 20 01:41:46 2014
-SDL, SDL, US, United States, US, TRUE, TRUE, NO, http://torproject.nexiom.net, https://torproject.nexiom.net, , , http://torproject.nexiom.net, https://torproject.nexiom.net/dist, , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://mirror.velcommuta.de/tor/, https://mirror.velcommuta.de/tor/, , , http://mirror.velcommuta.de/tor/dist/, https://mirror.velcommuta.de/tor/dist/, , , Mon Oct 20 01:41:46 2014
-EFF, EFF, US, United States, US, TRUE, FALSE, NO, https://tor.eff.org, https://tor.eff.org, , , https://tor.eff.org/dist/, https://tor.eff.org/dist/, , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, GR, Greece, GR, TRUE, TRUE, NO, https://tor.void.gr, https://tor.void.gr, , , https://tor.void.gr/dist/, https://tor.void.gr/dist/, , , Mon Oct 20 01:41:46 2014
+maki(a)maki-chan.de, Maki Hoshisawa, DE, Germany, DE, TRUE, FALSE, NO, http://tor.mirrors.maki-chan.de/, , , , http://tor.mirrors.maki-chan.de/dist/, , , , Sat Aug 23 10:09:07 2014
+info AT zentrum-der-gesundheit DOT de, Zentrum der Gesundheit, DK, Denmark, Europe, TRUE, FALSE, No, http://tor.idnr.ws/, , , , http://tor.idnr.ws/dist/, , , , Tue Sep 2 13:16:00 2014
+mirror ntzk de, Netzkonstrukt Berlin, DE, Germany, Europe, TRUE, FALSE, No, http://mirror.ntzk.de/torproject.org/, , , , http://mirror.ntzk.de/torproject.org/dist/, , , , Wed Oct 22 17:02:17 2014
+info /AT enn /DOT lu, Frenn vun der Enn A.S.B.L., IS, Iceland, Europe, TRUE, FALSE, No, http://torproject.lu/, , , , http://torproject.lu/dist/, , , http://btn6gqzqevlhoryd.onion, Wed Oct 22 17:02:17 2014
+Piratenpartei Bayern, Piratenpartei Bayern, DE, Germany, DE, TRUE, FALSE, NO, http://tormirror.piratenpartei-bayern.de, https://tormirror.piratenpartei-bayern.de, , , http://tormirror.piratenpartei-bayern.de/dist/, http://tormirror.piratenpartei-bayern.de/dist/, , , Tue Oct 21 20:06:45 2014
+Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://tor.hoi-polloi.org, http://tor.hossi-polloiorg, , , http://tor.hoi-polloi.org/dist/, http://tor.hosi-polloi.org/dist/, , , Wed Oct 22 15:12:49 2014
+kevinmg(a)pressfreedomfoundation.org, Freedom of the Press Foundation, US, United States, US, True, False, No, http://tor.pressfreedomfoundation.org, https://tor.pressfreedomfoundation.org, , , http://tor.pressfreedomfoundation.org/dist/, https://tor.pressfreedomfoundation.org/dist/, , , Tue Oct 21 20:06:45 2014
+tor(a)fodt.it // FoDT.it Webteam, FoDT.it, AT, Austria, Europe, TRUE, FALSE, No, http://tor.fodt.it, https://tor.fodt.it, , ftp://ftp.fodt.it/pub/mirrors/torproject.org/, http://tor.fodt.it/dist/, https://tor.fodt.it/dist/, , , Mon Aug 25 12:19:07 2014
+http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, TRUE, TRUE, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Wed Oct 22 17:02:17 2014
+haskell at gmx.es, Tor Supporter, ES, Spain, Europe, TRUE, FALSE, No, http://tor.zilog.es/, , , , http://tor.zilog.es/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, US, United States, US, TRUE, FALSE, No, http://199.175.55.215/, , , , http://199.175.55.215/dist/, , , , Wed Oct 22 17:02:17 2014
+margus.random at mail.ee, CyberSIDE, EE, Estonia, EE, TRUE, FALSE, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, torproject.is, IS, Iceland, IS, TRUE, FALSE, No, http://www.torproject.is/, , , , http://www.torproject.is/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, spline, DE, Germany, DE, TRUE, FALSE, No, http://tor.spline.de/, https://tor.spline.inf.fu-berlin.de/, rsync://ftp.spline.de/tor, ftp://ftp.spline.de/pub/tor, http://tor.spline.de/dist/, https://tor.spline.inf.fu-berlin.de/dist/, rsync://ftp.spline.de/tor/dist, , Wed Oct 22 17:02:17 2014
+Tor Fan, me0w.cc, RO, Romania, RO, TRUE, FALSE, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, borgmann.tv, DE, Germany, DE, TRUE, FALSE, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, TRUE, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Wed Oct 22 17:02:17 2014
+coralcdn.org, CoralCDN, INT, International, INT, TRUE, FALSE, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , Mon Oct 20 15:41:01 2014
+Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, FALSE, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Wed Oct 22 17:02:17 2014
+ mail AT benjamin-meier DOT info, beme it, DE, Germany, DE, TRUE, FALSE, No, http://tor.beme-it.de/, https://tor.beme-it.de/, rsync://tor.beme-it.de/tor, , http://tor.beme-it.de/dist/, https://tor.beme-it.de/dist/, rsync://tor.beme-it.de/tor/dist, , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, MX, Mexico, MX, TRUE, FALSE, No, http://fbnaia.homelinux.net/torproject/, https://fbnaia.homelinux.net/torproject/, , , http://fbnaia.homelinux.net/torproject/dist/, https://fbnaia.homelinux.net/torproject/dist/, , , Wed Oct 22 17:02:17 2014
+webmaster AT askapache DOT com, AskApache, US, California, US, TRUE, FALSE, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Wed Oct 22 17:02:17 2014
+http://sebastian.pfeifer.or.at/, TechAsk.IT, AT, Favoriten, Wien, TRUE, TRUE, No, http://www.unicorncloud.org/public/torproject.org/, https://www.unicorncloud.org/public/torproject.org/, , , http://www.unicorncloud.org/public/torproject.org/dist, https://www.unicorncloud.org/public/torproject.org/dist, , , Wed Oct 22 15:12:49 2014
+root AT amorphis DOT eu, Amorphis, NL, The Netherlands, Europe, TRUE, FALSE, No, http://tor.amorphis.eu/, , , , http://tor.amorphis.eu/dist/, , , , Wed Oct 22 17:02:17 2014
+hackthissite.org, HackThisSite.org, US, United States, US, TRUE, TRUE, No, http://tor.hackthissite.org/, https://tor.hackthissite.org/, , , http://mirror.hackthissite.org/tor, https://mirror.hackthissite.org/tor, , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, FALSE, No, http://tor.linuxlounge.net/, https://tor.linuxlounge.net/, , , http://tor.linuxlounge.net/dist/, https://tor.linuxlounge.net/dist/, , , Wed Oct 22 17:02:17 2014
+paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, TRUE, FALSE, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, cyberarmy, AT, Austria, AT, TRUE, FALSE, No, http://tor.cyberarmy.at/, , , , , , , , Wed Oct 22 17:02:17 2014
+hostmaster AT example DOT com, TheOnionRouter, IS, Iceland, Iceland, TRUE, FALSE, No, http://www.theonionrouter.com/, , , , http://www.theonionrouter.com/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, crazyhaze.de, DE, Germany, DE, TRUE, FALSE, No, http://tor.crazyhaze.de/, https://tor.crazyhaze.de/, , , http://tor.crazyhaze.de/dist/, https://tor.crazyhaze.de/dist/, , , Tue Oct 21 06:55:00 2014
+Tor Fan, chaos darmstadt, DE, Germany, Europe, TRUE, FALSE, No, http://mirrors.chaos-darmstadt.de/tor-mirror/, , , , http://mirrors.chaos-darmstadt.de/tor-mirror/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, Soviet Anonymous, RU, Russia, RU, TRUE, FALSE, No, http://creep.im/tor, https://creep.im/tor, rsync://creep.im/tor, ftp://creep.im/mirrors/tor, http://creep.im/tor/dist/, https://creep.im/tor/dist/, rsync://creep.im/tor-dist, , Wed Oct 22 17:02:17 2014
+Tor Fan, torservers, DE, Germany, DE, TRUE, FALSE, No, http://www.torservers.net/mirrors/torproject.org/, https://www.torservers.net/mirrors/torproject.org/, , , http://www.torservers.net/mirrors/torproject.org/dist/, https://www.torservers.net/mirrors/torproject.org/dist/, , http://hbpvnydyyjbmhx6b.onion/mirrors/torproject.org/, Wed Oct 22 17:02:17 2014
+Tor Fan, torland, GB, United Kingdom, GB, TRUE, FALSE, No, http://mirror.torland.me/torproject.org/, https://mirror.torland.me/torproject.org/, , , http://mirror.torland.me/torproject.org/dist/, https://mirror.torland.me/torproject.org/dist/, , , Wed Oct 22 17:02:17 2014
+Tor Fan, Lightning-bolt.net, CZ, Czech Republic, CZ, TRUE, FALSE, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Wed Oct 22 17:02:17 2014
+IceBear, myRL.net, IS, Iceland, IS, TRUE, FALSE, No, http://tor.myrl.net/, https://tor.myrl.net/, , , http://tor.myrl.net/dist/, https://tor.myrl.net/dist/, , , Wed Oct 22 17:02:17 2014
+kiro AT userzap DOT de, Userzap, DE, Germany, DE, TRUE, FALSE, No, http://torprojekt.userzap.de, https://torprojekt.userzap.de, , , http://torprojekt.userzap.de/dist/, https://torprojekt.userzap.de/dist/, , , Wed Oct 22 17:02:17 2014
+tor(a)eprci.net, EPRCI, US, United States, US, TRUE, FALSE, NO, http://tor.eprci.net/, https://www.eprci.com/tor/, , , http://tor.eprci.net/dist/, https://www.eprci.com/tor/dist/, , , Wed Oct 22 17:02:17 2014
+tor(a)les.net, tor(a)les.net, CA, Canada, CA, TRUE, FALSE, NO, http://tor.les.net/, , , , http://tor.les.net/dist, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, PW, DE, Germany, DE, TRUE, TRUE, NO, http://tor.pw.is/, , , , http://tor.pw.is/dist/, , , , Wed Oct 22 17:02:17 2014
+tor(a)stalkr.net, stalkr.net, FR, France, FR, TRUE, TRUE, NO, http://tor.stalkr.net/, https://tor.stalkr.net/, , , http://tor.stalkr.net/dist/, https://tor.stalkr.net/dist/, , , Wed Oct 22 17:02:17 2014
+doemela[AT]cyberguerrilla[DOT]org, cYbergueRrilLa AnonyMous NeXus, DE, Germany, DE, TRUE, FALSE, NO, https://tor-mirror.cyberguerrilla.org, , , , https://tor-mirror.cyberguerrilla.org/dist/, , , http://6dvj6v5imhny3anf.onion, Wed Oct 22 17:02:17 2014
+contact(a)gtor.org, Gtor, DE, Germany, DE, TRUE, TRUE, NO, http://torproject.gtor.org/, https://torproject.gtor.org/, rsync://torproject.gtor.org/website-mirror/, , http://torproject.gtor.org/dist/, https://torproject.gtor.org/dist/, rsync://torproject.gtor.org/website-mirror/dist/, , Wed Oct 22 17:02:17 2014
+SDL, SDL, US, United States, US, TRUE, TRUE, NO, http://torproject.nexiom.net, https://torproject.nexiom.net, , , http://torproject.nexiom.net, https://torproject.nexiom.net/dist, , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://mirror.velcommuta.de/tor/, https://mirror.velcommuta.de/tor/, , , http://mirror.velcommuta.de/tor/dist/, https://mirror.velcommuta.de/tor/dist/, , , Wed Oct 22 17:02:17 2014
+EFF, EFF, US, United States, US, TRUE, FALSE, NO, https://tor.eff.org, https://tor.eff.org, , , https://tor.eff.org/dist/, https://tor.eff.org/dist/, , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, GR, Greece, GR, TRUE, TRUE, NO, https://tor.void.gr, https://tor.void.gr, , , https://tor.void.gr/dist/, https://tor.void.gr/dist/, , , Wed Oct 22 17:02:17 2014
Ich Eben, Tor Supporter, DE, Germany, DE, TRUE, TRUE, No, http://reichster.de/mirrors/torproject.org/, https://reichster.de/mirrors/torproject.org, , , http://reichster.de/mirrors/torproject.org/dist/, https://reichster.de/mirrors/torproject.org/dist/, , , Sun Oct 19 13:13:40 2014
-jlgaddis AT gnu DOT org, Evil Routers, US, United States, US, TRUE, FALSE, No, http://tor1.evilrouters.net/, , , , http://tor1.evilrouters.net/dist/, , , , Mon Oct 20 01:41:46 2014
-tor AT miglix DOT eu, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, NO, http://tor.miglix.eu, https://tor.miglix.eu, , , http://tor.miglix.eu/dist/, https://tor.miglix.eu/dist/, , , Mon Oct 20 01:41:46 2014
-tor TA ninurta TOD name, TorNinurtaName, AT, Austria, AT, TRUE, TRUE, no, http://tor.ninurta.name/, , , , http://tor.ninurta.name/dist/, , , , Mon Oct 20 01:41:46 2014
-fr33tux <AT> general-changelog-team.fr, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor.fr33tux.org, https://tor.fr33tux.org, , , http://tor.fr33tux.org/dist/, https://tor.fr33tux.org/dist/, , , Mon Oct 20 01:41:46 2014
-sebastian(at)bobrecki(dot)pl, Sebastian M. Bobrecki, PL, Poland, Europe, TRUE, FALSE, No, http://tor.iv.net.pl, https://tor.iv.net.pl, , , http://tor.iv.net.pl/dist/, https://tor.iv.net.pl/dist/, , , Mon Oct 20 01:41:46 2014
-tor-mirror AT rdns DOT cc, d0wn.biz, FR, France, Europe, TRUE, FALSE, No, http://tor.static.lu, https://tor.static.lu, , , http://tor.static.lu/dist/, https://tor.static.lu/dist/, , , Mon Oct 20 01:41:46 2014
-tor(a)moparisthebest.com, moparisthebest.com, DE, Germany, Europe, TRUE, TRUE, No, http://www.moparisthebest.com/tor/, https://www.moparisthebest.com/tor/, , , http://www.moparisthebest.com/tor/dist/, https://www.moparisthebest.com/tor/dist/, , , Mon Oct 20 01:41:46 2014
-Sebastian, Maxanoo, NL, The Netherlands, Amsterdam, TRUE, FALSE, NO, http://tor.maxanoo.com/, , , , http://tor.maxanoo.com/dist/, , , , Mon Oct 20 01:41:46 2014
-rorrim AT ayo DOT tl, Tor Supporter, IS, Iceland, Europe, TRUE, TRUE, No, http://ayo.tl/tor/, https://ayo.tl/tor/, , , http://ayo.tl/tor/dist/, https://ayo.tl/tor/dist/, , , Mon Oct 20 01:41:46 2014
-stefano.fenoglio AT gmail DOT com, Tor Supporter, IT, Italy, Europe, TRUE, FALSE, No, http://tor.stefanof.com, , , , , , http://tor.stefanof.com/dist, , Mon Oct 20 01:41:46 2014
-Jacob Henner, Anatomical Networks, US, United States, US, TRUE, TRUE, TRUE, http://tor.ventricle.us/, , , , http://tor.ventricle.us/dist/, , , , Mon Oct 20 01:41:46 2014
-webmaster[at]hackabit.nl, Hackabit.nl, NL, The Netherlands, Europe, TRUE, FALSE, No, http://hackabit.nl/tor/, https://hackabit.nl/tor/, , , http://hackabit.nl/tor/dist/, https://hackabit.nl/tor/dist/, , , Mon Oct 20 01:41:46 2014
-Tor Fan, Ramos Research, US, United States, US, TRUE, TRUE, No, http://tor.ramosresearch.com/, , , , http://tor.ramosresearch.com/dist/, , , , Mon Oct 20 01:41:46 2014
-Tor Fan, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor.euve33747.vserver.de/, , , , http://tor.euve33747.vserver.de/dist, , , , Fri Oct 10 07:32:00 2014
-s7r[at]sky-ip[d0t]org, sky-ip.org, NL, Netherlands, NL, TRUE, FALSE, No, http://beautiful-mind.sky-ip.org/, , , , http://beautiful-mind.sky-ip.org/dist/, , , , Mon Oct 20 01:41:46 2014
-tor#pajonzeck#de, ITsn, DE, Germany, Europe, TRUE, FALSE, No, http://tor.pajonzeck.de/, https://tor.pajonzeck.de/, rsync://tor.pajonzeck.de/tor, http://tor.pajonzeck.de/dist/, https://tor.pajonzeck.de/dist/, , rsync://tor.pajonzeck.de/tor/dist, http://zgfgvob256pffy62.onion, Mon Oct 20 01:41:46 2014
-peter AT ludikovsky DOT name, Tor Supporter, AT, Austria, Europe, TRUE, TRUE, No, http://tor.ludikovsky.name/, , , , http://tor.ludikovsky.name/dist, , , http://54lnbzjo6xlr4f4j.onion/, Mon Oct 20 01:41:46 2014
-admin AT nuclear DASH weapons DOT net, Setec Administrator, US, Texas, Austin, TRUE, FALSE, No, http://tor.nuclear-weapons.net, https://tor.nuclear-weapons.net, , , http://tor.nuclear-weapons.net/dist, , https://tor.nuclear-weapons.net/dist, , Mon Oct 20 01:41:46 2014
-0x43DE8191, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://torproject.hactar.bz, , , , http://torproject.hactar.bz/dist/, , , , Mon Oct 20 01:41:46 2014
+jlgaddis AT gnu DOT org, Evil Routers, US, United States, US, TRUE, FALSE, No, http://tor1.evilrouters.net/, , , , http://tor1.evilrouters.net/dist/, , , , Wed Oct 22 17:02:17 2014
+tor AT miglix DOT eu, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, NO, http://tor.miglix.eu, https://tor.miglix.eu, , , http://tor.miglix.eu/dist/, https://tor.miglix.eu/dist/, , , Wed Oct 22 17:02:17 2014
+tor TA ninurta TOD name, TorNinurtaName, AT, Austria, AT, TRUE, TRUE, no, http://tor.ninurta.name/, , , , http://tor.ninurta.name/dist/, , , , Wed Oct 22 17:02:17 2014
+fr33tux <AT> general-changelog-team.fr, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor.fr33tux.org, https://tor.fr33tux.org, , , http://tor.fr33tux.org/dist/, https://tor.fr33tux.org/dist/, , , Wed Oct 22 17:02:17 2014
+sebastian(at)bobrecki(dot)pl, Sebastian M. Bobrecki, PL, Poland, Europe, TRUE, FALSE, No, http://tor.iv.net.pl, https://tor.iv.net.pl, , , http://tor.iv.net.pl/dist/, https://tor.iv.net.pl/dist/, , , Wed Oct 22 17:02:17 2014
+tor-mirror AT rdns DOT cc, d0wn.biz, FR, France, Europe, TRUE, FALSE, No, http://tor.static.lu, https://tor.static.lu, , , http://tor.static.lu/dist/, https://tor.static.lu/dist/, , , Wed Oct 22 17:02:17 2014
+tor(a)moparisthebest.com, moparisthebest.com, DE, Germany, Europe, TRUE, TRUE, No, http://www.moparisthebest.com/tor/, https://www.moparisthebest.com/tor/, , , http://www.moparisthebest.com/tor/dist/, https://www.moparisthebest.com/tor/dist/, , , Wed Oct 22 17:02:17 2014
+Sebastian, Maxanoo, NL, The Netherlands, Amsterdam, TRUE, FALSE, NO, http://tor.maxanoo.com/, , , , http://tor.maxanoo.com/dist/, , , , Wed Oct 22 17:02:17 2014
+rorrim AT ayo DOT tl, Tor Supporter, IS, Iceland, Europe, TRUE, TRUE, No, http://ayo.tl/tor/, https://ayo.tl/tor/, , , http://ayo.tl/tor/dist/, https://ayo.tl/tor/dist/, , , Wed Oct 22 15:12:49 2014
+stefano.fenoglio AT gmail DOT com, Tor Supporter, IT, Italy, Europe, TRUE, FALSE, No, http://tor.stefanof.com, , , , , , http://tor.stefanof.com/dist, , Wed Oct 22 17:02:17 2014
+Jacob Henner, Anatomical Networks, US, United States, US, TRUE, TRUE, TRUE, http://tor.ventricle.us/, , , , http://tor.ventricle.us/dist/, , , , Wed Oct 22 17:02:17 2014
+webmaster[at]hackabit.nl, Hackabit.nl, NL, The Netherlands, Europe, TRUE, FALSE, No, http://hackabit.nl/tor/, https://hackabit.nl/tor/, , , http://hackabit.nl/tor/dist/, https://hackabit.nl/tor/dist/, , , Wed Oct 22 17:02:17 2014
+Tor Fan, Ramos Research, US, United States, US, TRUE, TRUE, No, http://tor.ramosresearch.com/, , , , http://tor.ramosresearch.com/dist/, , , , Wed Oct 22 17:02:17 2014
+Tor Fan, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor.euve33747.vserver.de/, , , , http://tor.euve33747.vserver.de/dist, , , , Fri Oct 10 15:32:00 2014
+s7r[at]sky-ip[d0t]org, sky-ip.org, NL, Netherlands, NL, TRUE, FALSE, No, http://beautiful-mind.sky-ip.org/, , , , http://beautiful-mind.sky-ip.org/dist/, , , , Wed Oct 22 17:02:17 2014
+tor#pajonzeck#de, ITsn, DE, Germany, Europe, TRUE, FALSE, No, http://tor.pajonzeck.de/, https://tor.pajonzeck.de/, rsync://tor.pajonzeck.de/tor, http://tor.pajonzeck.de/dist/, https://tor.pajonzeck.de/dist/, , rsync://tor.pajonzeck.de/tor/dist, http://zgfgvob256pffy62.onion, Wed Oct 22 17:02:17 2014
+peter AT ludikovsky DOT name, Tor Supporter, AT, Austria, Europe, TRUE, TRUE, No, http://tor.ludikovsky.name/, , , , http://tor.ludikovsky.name/dist, , , http://54lnbzjo6xlr4f4j.onion/, Wed Oct 22 17:02:17 2014
+admin AT nuclear DASH weapons DOT net, Setec Administrator, US, Texas, Austin, TRUE, FALSE, No, http://tor.nuclear-weapons.net, https://tor.nuclear-weapons.net, , , http://tor.nuclear-weapons.net/dist, , https://tor.nuclear-weapons.net/dist, , Wed Oct 22 17:02:17 2014
+0x43DE8191, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://torproject.hactar.bz, , , , http://torproject.hactar.bz/dist/, , , , Wed Oct 22 17:02:17 2014
-nick at calyx dot com, The Calyx Institute, US, United States, North America, TRUE, FALSE, No, http://tor.calyxinstitute.org, https://tor.calyxinstitute.org, , , http://tor.calyxinstitute.org/dist/, https://tor.calyxinstitute.org/dist/, , http://tmdrhl4e4anhsjc5.onion,
-opi(a)zeropi.net, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor-mirror.zeropi.net/, , , , http://tor-mirror.zeropi.net/dist/, , , , Mon Oct 20 01:41:46 2014
-noc AT bbln DOT org, BBLN, NL, The Netherlands, Europe, TRUE, TRUE, No, http://mirror-nl1.bbln.org/torproject/, https://mirror-nl1.bbln.org/torproject/, rsync://mirror-nl1.bbln.org/torproject/, ftp://mirror-nl1.bbln.org/torproject/, http://mirror-nl1.bbln.org/torproject/dist/, https://mirror-nl1.bbln.org/torproject/dist/, rsync://mirror-nl1.bbln.org/torproject/dist/, , Mon Oct 20 01:41:46 2014
-noc AT bbln DOT org, BBLN, FR, France, Europe, TRUE, TRUE, No, http://mirror-fr1.bbln.org/torproject/, https://mirror-fr1.bbln.org/torproject/, rsync://mirror-fr1.bbln.org/torproject/, ftp://mirror-fr1.bbln.org/torproject/, http://mirror-fr1.bbln.org/torproject/dist/, https://mirror-fr1.bbln.org/torproject/dist/, rsync://mirror-fr1.bbln.org/torproject/dist/, , Mon Oct 20 01:41:46 2014
-noc AT bbln DOT org, BBLN, FR, France, Europe, TRUE, TRUE, No, http://mirror-fr2.bbln.org/torproject/, https://mirror-fr2.bbln.org/torproject/, rsync://mirror-fr2.bbln.org/torproject/, ftp://mirror-fr2.bbln.org/torproject/, http://mirror-fr2.bbln.org/torproject/dist/, https://mirror-fr2.bbln.org/torproject/dist/, rsync://mirror-fr2.bbln.org/torproject/dist/, , Mon Oct 20 01:41:46 2014
+opi(a)zeropi.net, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor-mirror.zeropi.net/, , , , http://tor-mirror.zeropi.net/dist/, , , , Wed Oct 22 17:02:17 2014
+noc AT bbln DOT org, BBLN, NL, The Netherlands, Europe, TRUE, TRUE, No, http://mirror-nl1.bbln.org/torproject/, https://mirror-nl1.bbln.org/torproject/, rsync://mirror-nl1.bbln.org/torproject/, ftp://mirror-nl1.bbln.org/torproject/, http://mirror-nl1.bbln.org/torproject/dist/, https://mirror-nl1.bbln.org/torproject/dist/, rsync://mirror-nl1.bbln.org/torproject/dist/, , Wed Oct 22 17:02:17 2014
+noc AT bbln DOT org, BBLN, FR, France, Europe, TRUE, TRUE, No, http://mirror-fr1.bbln.org/torproject/, https://mirror-fr1.bbln.org/torproject/, rsync://mirror-fr1.bbln.org/torproject/, ftp://mirror-fr1.bbln.org/torproject/, http://mirror-fr1.bbln.org/torproject/dist/, https://mirror-fr1.bbln.org/torproject/dist/, rsync://mirror-fr1.bbln.org/torproject/dist/, , Wed Oct 22 17:02:17 2014
+noc AT bbln DOT org, BBLN, FR, France, Europe, TRUE, TRUE, No, http://mirror-fr2.bbln.org/torproject/, https://mirror-fr2.bbln.org/torproject/, rsync://mirror-fr2.bbln.org/torproject/, ftp://mirror-fr2.bbln.org/torproject/, http://mirror-fr2.bbln.org/torproject/dist/, https://mirror-fr2.bbln.org/torproject/dist/, rsync://mirror-fr2.bbln.org/torproject/dist/, , Wed Oct 22 17:02:17 2014
1
0

[meek/master] Set TLSv1.0 as the minimum TLS version in meek-server.
by dcf@torproject.org 23 Oct '14
by dcf@torproject.org 23 Oct '14
23 Oct '14
commit 91d199b66a70fa43e652b6e5f0816d250d6f0bdc
Author: David Fifield <david(a)bamsoftware.com>
Date: Wed Oct 22 16:39:09 2014 -0700
Set TLSv1.0 as the minimum TLS version in meek-server.
As a mitigationn for POODLE. This was spotted by Jesse Victors.
---
meek-server/meek-server.go | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/meek-server/meek-server.go b/meek-server/meek-server.go
index 81a1757..669f329 100644
--- a/meek-server/meek-server.go
+++ b/meek-server/meek-server.go
@@ -248,6 +248,11 @@ func listenTLS(network string, addr *net.TCPAddr, certFilename, keyFilename stri
return nil, err
}
+ // Additionally disable SSLv3 because of the POODLE attack.
+ // http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiti…
+ // https://code.google.com/p/go/source/detail?r=ad9e191a51946e43f1abac8b6a2fef…
+ config.MinVersion = tls.VersionTLS10
+
tlsListener := tls.NewListener(conn, config)
return tlsListener, nil
1
0

22 Oct '14
commit 86e0424148aac12965ca1f34dcc9ea5cfbdfa2f0
Author: David Goulet <dgoulet(a)ev0ke.net>
Date: Sun Oct 12 17:04:54 2014 -0400
Fix: improve getpeername to actually works
This also adds a test in the test suite for our getpeername() wrapper.
Signed-off-by: David Goulet <dgoulet(a)ev0ke.net>
---
.gitignore | 1 +
src/lib/getpeername.c | 58 +++++++++++++++++++++----
tests/Makefile.am | 5 ++-
tests/test_getpeername.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++
tests/test_list | 1 +
5 files changed, 163 insertions(+), 10 deletions(-)
diff --git a/.gitignore b/.gitignore
index c836b9b..9eebfbc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,6 +48,7 @@ tests/test_connect
tests/test_dns
tests/test_socket
tests/test_fd_passing
+tests/test_getpeername
tests/unit/test_onion
tests/unit/test_connection
tests/unit/test_utils
diff --git a/src/lib/getpeername.c b/src/lib/getpeername.c
index 607c1b1..bd93a2b 100644
--- a/src/lib/getpeername.c
+++ b/src/lib/getpeername.c
@@ -39,15 +39,63 @@ LIBC_GETPEERNAME_RET_TYPE tsocks_getpeername(LIBC_GETPEERNAME_SIG)
connection_registry_lock();
conn = connection_find(sockfd);
if (!conn) {
- errno = ENOTCONN;
+ connection_registry_unlock();
+ goto libc;
+ }
+
+ if (!addrlen || !addr) {
+ /* Bad address. */
+ errno = EFAULT;
ret = -1;
goto end;
}
+ /*
+ * Extra check for addrlen since we are about to copy the connection
+ * content into the given address.
+ */
+ if (*addrlen > sizeof(struct sockaddr)) {
+ /* Ref to the manpage for the returned value here. */
+ errno = EINVAL;
+ ret = -1;
+ goto end;
+ }
+
+ /*
+ * Copy connected destination address into the given addr with only the
+ * given len so we don't overflow on purpose.
+ */
+ switch (conn->dest_addr.domain) {
+ case CONNECTION_DOMAIN_NAME:
+ /*
+ * This domain is only used with onion address which contains a
+ * cookie address of domain INET. Use that since that's the address
+ * that has been returned to the application.
+ */
+ case CONNECTION_DOMAIN_INET:
+ memcpy(addr, (const struct sockaddr *) &conn->dest_addr.u.sin,
+ *addrlen);
+ break;
+ case CONNECTION_DOMAIN_INET6:
+ memcpy(addr, (const struct sockaddr *) &conn->dest_addr.u.sin6,
+ *addrlen);
+ break;
+ }
+
+ /* Success. */
errno = 0;
+ ret = 0;
+
end:
connection_registry_unlock();
return ret;
+
+libc:
+ /*
+ * This is clearly not a socket we are handling so it's safe to pass it to
+ * the original libc call.
+ */
+ return tsocks_libc_getpeername(LIBC_GETPEERNAME_ARGS);
}
/*
@@ -55,18 +103,10 @@ end:
*/
LIBC_GETPEERNAME_DECL
{
- int ret;
-
if (!tsocks_libc_getpeername) {
tsocks_libc_getpeername = tsocks_find_libc_symbol(
LIBC_GETPEERNAME_NAME_STR, TSOCKS_SYM_EXIT_NOT_FOUND);
}
- ret = tsocks_libc_getpeername(LIBC_GETPEERNAME_ARGS);
- if (ret < 0) {
- /* errno is populated by the previous call at this point. */
- return ret;
- }
-
return tsocks_getpeername(LIBC_GETPEERNAME_ARGS);
}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b916134..630492d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -6,7 +6,7 @@ LIBTAP=$(top_builddir)/tests/utils/tap/libtap.la
LIBTORSOCKS=$(top_builddir)/src/lib/libtorsocks.la
-noinst_PROGRAMS = test_dns test_socket test_connect test_fd_passing
+noinst_PROGRAMS = test_dns test_socket test_connect test_fd_passing test_getpeername
test_dns_SOURCES = test_dns.c
test_dns_LDADD = $(LIBTAP) $(LIBTORSOCKS)
@@ -20,6 +20,9 @@ test_connect_LDADD = $(LIBTAP) $(LIBTORSOCKS)
test_fd_passing_SOURCES = test_fd_passing.c
test_fd_passing_LDADD = $(LIBTAP) $(LIBTORSOCKS) -lpthread
+test_getpeername_SOURCES = test_getpeername.c
+test_getpeername_LDADD = $(LIBTAP) $(LIBTORSOCKS)
+
check-am:
./run.sh test_list
diff --git a/tests/test_getpeername.c b/tests/test_getpeername.c
new file mode 100644
index 0000000..516596e
--- /dev/null
+++ b/tests/test_getpeername.c
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2014 - David Goulet <dgoulet(a)ev0ke.net>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License, version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <stdio.h>
+#include <sys/socket.h>
+
+#include <lib/torsocks.h>
+
+#include <tap/tap.h>
+
+#define NUM_TESTS 7
+
+static void test_getpeername(void)
+{
+ int pipe_fds[2], ret, inet_sock = -1;
+ char buf[INET_ADDRSTRLEN];
+ struct sockaddr addr;
+ struct sockaddr_in addrv4;
+ socklen_t addrlen;
+ const char *ip = "93.95.227.222";
+
+ ret = pipe(pipe_fds);
+ if (ret < 0) {
+ fail("Unable to create pipe");
+ goto error;
+ }
+
+ /* This test is to see if we go through the libc or not. */
+ ret = getpeername(pipe_fds[0], NULL, NULL);
+ ok(ret == -1 && errno == ENOTSOCK, "Invalid socket fd");
+
+ close(pipe_fds[0]);
+ close(pipe_fds[1]);
+
+ /* Create inet socket. */
+ inet_sock = socket(AF_INET, SOCK_STREAM, 0);
+ ok(inet_sock >= 0, "Inet socket created");
+
+ /* This test is to see if we go through the libc or not. */
+ ret = getpeername(inet_sock, &addr, &addrlen);
+ ok(ret == -1 && errno == ENOTCONN, "Socket not connected");
+
+ /* Connect socket through Tor so we can test the wrapper. */
+ addrv4.sin_family = AF_INET;
+ addrv4.sin_port = htons(443);
+ inet_pton(addrv4.sin_family, ip, &addrv4.sin_addr);
+ memset(addrv4.sin_zero, 0, sizeof(addrv4.sin_zero));
+
+ ret = connect(inet_sock, (struct sockaddr *) &addrv4, sizeof(addrv4));
+ if (ret < 0) {
+ fail("Unable to connect to %s", ip);
+ goto error;
+ }
+
+ /* Very large addrlen. */
+ addrlen = -1;
+ ret = getpeername(inet_sock, &addr, &addrlen);
+ ok(ret == -1 && errno == EINVAL, "Invalid addrlen");
+
+ addrlen = sizeof(addr);
+ ret = getpeername(inet_sock, NULL, &addrlen);
+ ok(ret == -1 && errno == EFAULT, "Invalid addr ptr");
+
+ ret = getpeername(inet_sock, &addr, NULL);
+ ok(ret == -1 && errno == EFAULT, "Invalid addrlen ptr");
+
+ addrlen = sizeof(addrv4);
+ memset(&addrv4, 0, addrlen);
+ ret = getpeername(inet_sock, (struct sockaddr *) &addrv4, &addrlen);
+
+ /* Validate returned IP address. */
+ memset(buf, 0, sizeof(buf));
+ inet_ntop(addrv4.sin_family, &addrv4.sin_addr, buf, sizeof(buf));
+ ok(ret == 0 && strncmp(buf, ip, strlen(ip)) == 0,
+ "Valid returned IP address from getpeername()");
+
+error:
+ if (inet_sock >= 0) {
+ close(inet_sock);
+ }
+ return;
+}
+
+int main(int argc, char **argv)
+{
+ /* Libtap call for the number of tests planned. */
+ plan_tests(NUM_TESTS);
+
+ test_getpeername();
+
+ return 0;
+}
diff --git a/tests/test_list b/tests/test_list
index fb320db..e66a239 100644
--- a/tests/test_list
+++ b/tests/test_list
@@ -2,6 +2,7 @@
./test_dns
./test_fd_passing
./test_socket
+./test_getpeername
./unit/test_onion
./unit/test_connection
./unit/test_utils
1
0

[translation/tails-persistence-setup_completed] Update translations for tails-persistence-setup_completed
by translation@torproject.org 22 Oct '14
by translation@torproject.org 22 Oct '14
22 Oct '14
commit cadf10ef2aa53d06d10dd752b2e7ef489a00f822
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 22 21:45:27 2014 +0000
Update translations for tails-persistence-setup_completed
---
it/it.po | 49 +++++++++++++++++++++++++------------------------
1 file changed, 25 insertions(+), 24 deletions(-)
diff --git a/it/it.po b/it/it.po
index e3ce7a8..6b8c4e4 100644
--- a/it/it.po
+++ b/it/it.po
@@ -5,19 +5,20 @@
# Translators:
# il_doc <filippo.giomi(a)gmail.com>, 2013
# Francesca Ciceri <madamezou(a)zouish.org>, 2014
-# Tony Goodyear <fswitch20(a)hotmail.com>, 2012
+# spawned76 <fswitch20(a)hotmail.com>, 2012
# il_doc <filippo.giomi(a)gmail.com>, 2013
+# Friguard <italiano(a)mcdi.com>, 2014
# jan <jan.reister(a)unimi.it>, 2012-2013
# Random_R, 2013
# Random_R, 2013
-# Tony Goodyear <fswitch20(a)hotmail.com>, 2012
+# spawned76 <fswitch20(a)hotmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: Tails developers <tails(a)boum.org>\n"
-"POT-Creation-Date: 2014-04-16 21:26+0200\n"
-"PO-Revision-Date: 2014-04-28 10:50+0000\n"
-"Last-Translator: Francesca Ciceri <madamezou(a)zouish.org>\n"
+"POT-Creation-Date: 2014-10-08 21:13+0200\n"
+"PO-Revision-Date: 2014-10-22 21:41+0000\n"
+"Last-Translator: Friguard <italiano(a)mcdi.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/torproject/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -86,8 +87,8 @@ msgid "Browser bookmarks"
msgstr "Segnalibri del browser"
#: ../lib/Tails/Persistence/Configuration/Presets.pm:120
-msgid "Bookmarks saved in Iceweasel browser"
-msgstr "Segnalibri salvati nel browser Iceweasel"
+msgid "Bookmarks saved in the Tor Browser"
+msgstr "Segnalibri salvati nel Browser Tor"
#: ../lib/Tails/Persistence/Configuration/Presets.pm:128
msgid "Printers"
@@ -126,67 +127,67 @@ msgstr "Crea un symlink in $HOME per ogni file o cartella dentro la cartella \"d
msgid "Setup Tails persistent volume"
msgstr "Configurare un volume persistente Tails"
-#: ../lib/Tails/Persistence/Setup.pm:337
+#: ../lib/Tails/Persistence/Setup.pm:307 ../lib/Tails/Persistence/Setup.pm:452
+msgid "Error"
+msgstr "Errore"
+
+#: ../lib/Tails/Persistence/Setup.pm:339
#, perl-format
msgid "Device %s already has a persistent volume."
msgstr "Il dispositivo %s ha già un volume persistente"
-#: ../lib/Tails/Persistence/Setup.pm:345
+#: ../lib/Tails/Persistence/Setup.pm:347
#, perl-format
msgid "Device %s has not enough unallocated space."
msgstr "Il dispositivo %s non ha abbastanza spazio libero"
-#: ../lib/Tails/Persistence/Setup.pm:353 ../lib/Tails/Persistence/Setup.pm:367
+#: ../lib/Tails/Persistence/Setup.pm:355 ../lib/Tails/Persistence/Setup.pm:369
#, perl-format
msgid "Device %s has no persistent volume."
msgstr "Il dispositivo %s non ha un volume persistente"
-#: ../lib/Tails/Persistence/Setup.pm:359
+#: ../lib/Tails/Persistence/Setup.pm:361
msgid ""
"Cannot delete the persistent volume while in use. You should restart Tails "
"without persistence."
msgstr "Impossibile cancellare un volume persistente mentre è in uso. Dovresti riavviare Tails senza persistenza"
-#: ../lib/Tails/Persistence/Setup.pm:378
+#: ../lib/Tails/Persistence/Setup.pm:380
msgid "Persistence volume is not unlocked."
msgstr "Il volume persistente non è sbloccato"
-#: ../lib/Tails/Persistence/Setup.pm:383
+#: ../lib/Tails/Persistence/Setup.pm:385
msgid "Persistence volume is not mounted."
msgstr "Il volume persistente non è montato"
-#: ../lib/Tails/Persistence/Setup.pm:388
+#: ../lib/Tails/Persistence/Setup.pm:390
msgid "Persistence volume is not readable. Permissions or ownership problems?"
msgstr "Il volume persistente non è leggibile. Problemi con permessi o di proprietà?"
-#: ../lib/Tails/Persistence/Setup.pm:393
+#: ../lib/Tails/Persistence/Setup.pm:395
msgid "Persistence volume is not writable. Maybe it was mounted read-only?"
msgstr "Il volume persistente non è scrivibile. Potrebbe essere montato in sola lettura?"
-#: ../lib/Tails/Persistence/Setup.pm:402
+#: ../lib/Tails/Persistence/Setup.pm:404
#, perl-format
msgid "Tails is running from non-USB / non-SDIO device %s."
msgstr "Tails è in esecuzione dal dispositivo non-USB / non-SDIO %s."
-#: ../lib/Tails/Persistence/Setup.pm:408
+#: ../lib/Tails/Persistence/Setup.pm:410
#, perl-format
msgid "Device %s is optical."
msgstr "Il dispositivo %s è ottico"
-#: ../lib/Tails/Persistence/Setup.pm:415
+#: ../lib/Tails/Persistence/Setup.pm:417
#, perl-format
msgid "Device %s was not created using Tails Installer."
msgstr "Il dispositivo %s non è stato creato mediante l'installatore Tails"
-#: ../lib/Tails/Persistence/Setup.pm:450
-msgid "Error"
-msgstr "Errore"
-
-#: ../lib/Tails/Persistence/Setup.pm:670
+#: ../lib/Tails/Persistence/Setup.pm:677
msgid "Persistence wizard - Finished"
msgstr "Procedura guidata di creazione persistenza completata"
-#: ../lib/Tails/Persistence/Setup.pm:673
+#: ../lib/Tails/Persistence/Setup.pm:680
msgid ""
"Any changes you have made will only take effect after restarting Tails.\n"
"\n"
1
0

[translation/tails-persistence-setup] Update translations for tails-persistence-setup
by translation@torproject.org 22 Oct '14
by translation@torproject.org 22 Oct '14
22 Oct '14
commit 19538122fdafb5a27e39bb033b1445e5d1bb2b87
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 22 21:45:22 2014 +0000
Update translations for tails-persistence-setup
---
it/it.po | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/it/it.po b/it/it.po
index b52db63..6b8c4e4 100644
--- a/it/it.po
+++ b/it/it.po
@@ -7,6 +7,7 @@
# Francesca Ciceri <madamezou(a)zouish.org>, 2014
# spawned76 <fswitch20(a)hotmail.com>, 2012
# il_doc <filippo.giomi(a)gmail.com>, 2013
+# Friguard <italiano(a)mcdi.com>, 2014
# jan <jan.reister(a)unimi.it>, 2012-2013
# Random_R, 2013
# Random_R, 2013
@@ -16,8 +17,8 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: Tails developers <tails(a)boum.org>\n"
"POT-Creation-Date: 2014-10-08 21:13+0200\n"
-"PO-Revision-Date: 2014-10-09 10:19+0000\n"
-"Last-Translator: runasand <runa.sandvik(a)gmail.com>\n"
+"PO-Revision-Date: 2014-10-22 21:41+0000\n"
+"Last-Translator: Friguard <italiano(a)mcdi.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/torproject/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -87,7 +88,7 @@ msgstr "Segnalibri del browser"
#: ../lib/Tails/Persistence/Configuration/Presets.pm:120
msgid "Bookmarks saved in the Tor Browser"
-msgstr ""
+msgstr "Segnalibri salvati nel Browser Tor"
#: ../lib/Tails/Persistence/Configuration/Presets.pm:128
msgid "Printers"
1
0

22 Oct '14
commit eb80d5cd10d10158b39c344ad035afe8d31a899f
Author: David Goulet <dgoulet(a)ev0ke.net>
Date: Wed Oct 22 15:25:23 2014 -0400
Fix: improve Unix socket passing detection
This commit adds the support for the torsocks recvmsg wrapper to detect
multiple FDs being passed through a Unix socket.
Furthermore, we now don't exit anymore but simply fire a debug message
and return EACCES to the caller.
Finally, a test is added for inet socket passing detection called
test_fd_passing.
Signed-off-by: David Goulet <dgoulet(a)ev0ke.net>
---
.gitignore | 1 +
src/lib/recv.c | 132 +++++++++---
tests/Makefile.am | 5 +-
tests/test_fd_passing.c | 520 +++++++++++++++++++++++++++++++++++++++++++++++
tests/test_list | 1 +
5 files changed, 632 insertions(+), 27 deletions(-)
diff --git a/.gitignore b/.gitignore
index ff6012e..c836b9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@ src/bin/torsocks
tests/test_connect
tests/test_dns
tests/test_socket
+tests/test_fd_passing
tests/unit/test_onion
tests/unit/test_connection
tests/unit/test_utils
diff --git a/src/lib/recv.c b/src/lib/recv.c
index 036fa91..b034d72 100644
--- a/src/lib/recv.c
+++ b/src/lib/recv.c
@@ -26,21 +26,60 @@
TSOCKS_LIBC_DECL(recvmsg, LIBC_RECVMSG_RET_TYPE, LIBC_RECVMSG_SIG)
/*
+ * This is the maximum hardcoded amount of fd that is possible to pass through
+ * a Unix socket in the Linux kernel. On FreeBSD for instance it's MLEN which
+ * is defined to MSIZE (256) minus the msg header size thus way below this
+ * Linux limit. Such a shame there is no way to dynamically get that value or
+ * get it in an exposed ABI...
+ */
+#define SCM_MAX_FD 253
+
+/*
+ * Close all fds in the given array of size count.
+ */
+static void close_fds(int *fds, size_t count)
+{
+ int i;
+
+ for (i = 0; i < count; i++) {
+ tsocks_libc_close(fds[i]);
+ }
+}
+
+/*
* Torsocks call for recvmsg(2)
*
* We only hijack this call to handle the FD passing between process on Unix
* socket. If an INET/INET6 socket is recevied, we stop everything because at
* that point we can't guarantee traffic going through Tor.
+ *
+ * Note that we don't rely on the given "msg" structure since it's controlled
+ * by the user and might not have been zeroed thus containing wrong values for
+ * ancillary data. Thus, we are going to expect SCM_MAX_FD and see what we can
+ * get from that if any.
*/
LIBC_RECVMSG_RET_TYPE tsocks_recvmsg(LIBC_RECVMSG_SIG)
{
- int fd;
+ int sock_domain;
+ socklen_t optlen;
ssize_t ret = 0;
- char dummy, recv_fd[CMSG_SPACE(sizeof(fd))];
+ char dummy, recv_fd[CMSG_SPACE(SCM_MAX_FD)];
struct iovec iov[1];
struct cmsghdr *cmsg;
struct msghdr msg_hdr;
+ /* Don't bother if the socket family is NOT Unix. */
+ optlen = sizeof(sock_domain);
+ ret = getsockopt(sockfd, SOL_SOCKET, SO_DOMAIN, &sock_domain, &optlen);
+ if (ret < 0) {
+ DBG("[recvmsg] Fail getsockopt() on sock %d", sockfd);
+ errno = EBADF;
+ goto error;
+ }
+ if (sock_domain != AF_UNIX) {
+ goto libc;
+ }
+
memset(&msg_hdr, 0, sizeof(msg_hdr));
/* Prepare to receive the structures */
@@ -55,42 +94,83 @@ LIBC_RECVMSG_RET_TYPE tsocks_recvmsg(LIBC_RECVMSG_SIG)
/* Just peek the data to inspect the payload for fd. */
ret = tsocks_libc_recvmsg(sockfd, &msg_hdr, MSG_PEEK);
} while (ret < 0 && errno == EINTR);
-
+ if (ret < 0) {
+ /* Use the current errno set by the call above. */
+ goto error;
+ }
cmsg = CMSG_FIRSTHDR(&msg_hdr);
if (!cmsg) {
- goto end;
+ /* No control message header, safe to pass to libc. */
+ goto libc;
+ }
+ if (msg_hdr.msg_flags & MSG_CTRUNC) {
+ /*
+ * This means there are actually *more* data in the control thus
+ * exceeding somehow our hard limit of SCM_MAX_FD. In that case, return
+ * an error since we can't guarantee anything for socket passing
+ */
+ errno = EMSGSIZE;
+ goto error;
}
/*
* Detecting FD passing, the next snippet of code will check if we get a
- * inet/inet6 socket. If so, everything stops immediately before going
- * further.
+ * inet/inet6 socket. If so, we are going to close the received socket,
+ * wipe clean the cmsg payload and return an unauthorized access code.
*/
if (cmsg->cmsg_type == SCM_RIGHTS || cmsg->cmsg_level == SOL_SOCKET) {
- struct sockaddr addr;
- socklen_t addrlen;
- sa_family_t family = AF_UNSPEC;
-
- memcpy(&fd, CMSG_DATA(cmsg), sizeof(fd));
-
- /* Get socket protocol family. */
- addrlen = sizeof(addr);
- ret = getsockname(fd, &addr, &addrlen);
- if (ret < 0) {
- /* Use the getsockname() errno value. */
- goto end;
- }
-
- family = addr.sa_family;
- if (family == AF_INET || family == AF_INET6) {
- ERR("[recvmsg] Inet socket passing detected. Aborting everything! "
- "A non Tor socket could be used thus leaking information.");
- exit(EXIT_FAILURE);
+ /*
+ * The kernel control that len value and there is a hard limit so no
+ * chance here of having a crazy high value that could exhaust the
+ * stack memory.
+ */
+ size_t sizeof_fds = (cmsg->cmsg_len - sizeof(*cmsg)) / sizeof(int);
+ int i, fds[sizeof_fds];
+
+ memcpy(&fds, CMSG_DATA(cmsg), sizeof(fds));
+
+ /*
+ * For each received fds, we will inspect them to see if there is an
+ * inet socket in there and if so, we have to stop, close everything to
+ * avoid fd leak and return an error.
+ */
+ for (i = 0; i < sizeof_fds; i++) {
+ struct sockaddr addr;
+ socklen_t addrlen = sizeof(addr);
+
+ memset(&addr, 0, addrlen);
+
+ /* Get socket protocol family. */
+ ret = getsockname(fds[i], &addr, &addrlen);
+ if (ret < 0) {
+ /* Either a bad fd or not a socket. */
+ continue;
+ }
+
+ if (addr.sa_family == AF_INET || addr.sa_family == AF_INET6) {
+ DBG("[recvmsg] Inet socket passing detected. Denying it.");
+ /* We found socket, close everything and return error. */
+ close_fds(fds, sizeof_fds);
+ /*
+ * The recv(2) man page does *not* mention that errno value
+ * however it's acceptable because Linux LSM can return this
+ * code if the access is denied in the application by a
+ * security module. We are basically simulating this here.
+ */
+ errno = EACCES;
+ ret = -1;
+ goto error;
+ }
}
}
-end:
+ /* At this point, NO socket was detected, continue to the libc safely. */
+
+libc:
return tsocks_libc_recvmsg(LIBC_RECVMSG_ARGS);
+
+error:
+ return ret;
}
/*
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 141ac5e..b916134 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -6,7 +6,7 @@ LIBTAP=$(top_builddir)/tests/utils/tap/libtap.la
LIBTORSOCKS=$(top_builddir)/src/lib/libtorsocks.la
-noinst_PROGRAMS = test_dns test_socket test_connect
+noinst_PROGRAMS = test_dns test_socket test_connect test_fd_passing
test_dns_SOURCES = test_dns.c
test_dns_LDADD = $(LIBTAP) $(LIBTORSOCKS)
@@ -17,6 +17,9 @@ test_socket_LDADD = $(LIBTAP) $(LIBTORSOCKS)
test_connect_SOURCES = test_connect.c
test_connect_LDADD = $(LIBTAP) $(LIBTORSOCKS)
+test_fd_passing_SOURCES = test_fd_passing.c
+test_fd_passing_LDADD = $(LIBTAP) $(LIBTORSOCKS) -lpthread
+
check-am:
./run.sh test_list
diff --git a/tests/test_fd_passing.c b/tests/test_fd_passing.c
new file mode 100644
index 0000000..1803126
--- /dev/null
+++ b/tests/test_fd_passing.c
@@ -0,0 +1,520 @@
+/*
+ * Copyright (C) 2014 - David Goulet <dgoulet(a)ev0ke.net>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License, version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <limits.h>
+#include <sys/un.h>
+
+#include <lib/torsocks.h>
+
+#include <tap/tap.h>
+
+#define NUM_TESTS 5
+
+/*
+ * Indicate if the thread recv is ready. 0 means no, 1 means yes and -1 means
+ * error occured.
+ */
+static volatile int thread_recv_ready;
+
+/* Unix socket for this test. */
+static const char *sockpath = "/tmp/torsocks-unix-fd-passing.sock";
+
+/* Order libtap output. */
+static pthread_mutex_t tsocks_test_log = PTHREAD_MUTEX_INITIALIZER;
+#define OK(cond, args...) \
+ do { \
+ pthread_mutex_lock(&tsocks_test_log); \
+ ok(cond, ## args); \
+ pthread_mutex_unlock(&tsocks_test_log); \
+ } while (0);
+
+/*
+ * Send buf data of size len. Using sendmsg API.
+ *
+ * Return the size of sent data.
+ */
+static ssize_t send_unix_sock(int sock, void *buf, size_t len)
+{
+ struct msghdr msg;
+ struct iovec iov[1];
+ ssize_t ret = -1;
+
+ memset(&msg, 0, sizeof(msg));
+
+ iov[0].iov_base = buf;
+ iov[0].iov_len = len;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+
+ ret = sendmsg(sock, &msg, 0);
+ if (ret < 0) {
+ /*
+ * Only warn about EPIPE when quiet mode is deactivated.
+ * We consider EPIPE as expected.
+ */
+ if (errno != EPIPE) {
+ perror("sendmsg");
+ }
+ }
+
+ return ret;
+}
+
+static ssize_t send_fds_unix_sock(int sock, int *fds, size_t nb_fd)
+{
+ struct msghdr msg;
+ struct cmsghdr *cmptr;
+ struct iovec iov[1];
+ ssize_t ret = -1;
+ unsigned int sizeof_fds = nb_fd * sizeof(int);
+ char tmp[CMSG_SPACE(sizeof_fds)];
+ char dummy = 0;
+
+ memset(&msg, 0, sizeof(msg));
+
+ msg.msg_control = (caddr_t)tmp;
+ msg.msg_controllen = CMSG_LEN(sizeof_fds);
+
+ cmptr = CMSG_FIRSTHDR(&msg);
+ cmptr->cmsg_level = SOL_SOCKET;
+ cmptr->cmsg_type = SCM_RIGHTS;
+ cmptr->cmsg_len = CMSG_LEN(sizeof_fds);
+ memcpy(CMSG_DATA(cmptr), fds, sizeof_fds);
+ /* Sum of the length of all control messages in the buffer: */
+ msg.msg_controllen = cmptr->cmsg_len;
+
+ iov[0].iov_base = &dummy;
+ iov[0].iov_len = 1;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+
+ do {
+ ret = sendmsg(sock, &msg, 0);
+ } while (ret < 0 && errno == EINTR);
+ if (ret < 0) {
+ /*
+ * Only warn about EPIPE when quiet mode is deactivated.
+ * We consider EPIPE as expected.
+ */
+ if (errno != EPIPE) {
+ perror("sendmsg");
+ }
+ }
+ return ret;
+}
+
+/*
+ * Receive data of size len in put that data into the buf param. Using recvmsg
+ * API.
+ *
+ * Return the size of received data.
+ */
+static ssize_t recv_unix_sock(int sock, void *buf, size_t len)
+{
+ struct msghdr msg;
+ struct iovec iov[1];
+ ssize_t ret = -1;
+ size_t len_last;
+
+ memset(&msg, 0, sizeof(msg));
+
+ iov[0].iov_base = buf;
+ iov[0].iov_len = len;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+
+ do {
+ len_last = iov[0].iov_len;
+ ret = recvmsg(sock, &msg, 0);
+ if (ret > 0) {
+ iov[0].iov_base += ret;
+ iov[0].iov_len -= ret;
+ assert(ret <= len_last);
+ }
+ } while ((ret > 0 && ret < len_last) || (ret < 0 && errno == EINTR));
+ if (ret < 0) {
+ perror("recvmsg");
+ } else if (ret > 0) {
+ ret = len;
+ }
+ /* Else ret = 0 meaning an orderly shutdown. */
+
+ return ret;
+}
+
+/*
+ * Recv a message accompanied by fd(s) from a unix socket.
+ *
+ * Returns the size of received data, or negative error value.
+ *
+ * Expect at most "nb_fd" file descriptors. Returns the number of fd
+ * actually received in nb_fd.
+ */
+static ssize_t recv_fds_unix_sock(int sock, int *fds, size_t nb_fd)
+{
+ struct iovec iov[1];
+ ssize_t ret = 0;
+ struct cmsghdr *cmsg;
+ size_t sizeof_fds = nb_fd * sizeof(int);
+ char recv_fd[CMSG_SPACE(sizeof_fds)];
+ struct msghdr msg;
+ char dummy;
+
+ memset(&msg, 0, sizeof(msg));
+
+ /* Prepare to receive the structures */
+ iov[0].iov_base = &dummy;
+ iov[0].iov_len = 1;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+ msg.msg_control = recv_fd;
+ msg.msg_controllen = sizeof(recv_fd);
+
+ do {
+ ret = recvmsg(sock, &msg, 0);
+ } while (ret < 0 && errno == EINTR);
+ if (ret < 0) {
+ goto end;
+ }
+ if (ret != 1) {
+ fprintf(stderr, "Error: Received %zd bytes, expected %d\n",
+ ret, 1);
+ goto end;
+ }
+ if (msg.msg_flags & MSG_CTRUNC) {
+ fprintf(stderr, "Error: Control message truncated.\n");
+ ret = -1;
+ goto end;
+ }
+ cmsg = CMSG_FIRSTHDR(&msg);
+ if (!cmsg) {
+ fprintf(stderr, "Error: Invalid control message header\n");
+ ret = -1;
+ goto end;
+ }
+ if (cmsg->cmsg_level != SOL_SOCKET || cmsg->cmsg_type != SCM_RIGHTS) {
+ fprintf(stderr, "Didn't received any fd\n");
+ ret = -1;
+ goto end;
+ }
+ if (cmsg->cmsg_len != CMSG_LEN(sizeof_fds)) {
+ fprintf(stderr, "Error: Received %zu bytes of ancillary data, expected %zu\n",
+ (size_t) cmsg->cmsg_len, (size_t) CMSG_LEN(sizeof_fds));
+ ret = -1;
+ goto end;
+ }
+ memcpy(fds, CMSG_DATA(cmsg), sizeof_fds);
+ ret = sizeof_fds;
+end:
+ return ret;
+}
+
+/*
+ * Connect to unix socket using the path name.
+ */
+static int connect_unix_sock(const char *pathname)
+{
+ struct sockaddr_un sun;
+ int fd, ret, closeret;
+
+ fd = socket(PF_UNIX, SOCK_STREAM, 0);
+ if (fd < 0) {
+ perror("socket");
+ ret = fd;
+ goto error;
+ }
+
+ memset(&sun, 0, sizeof(sun));
+ sun.sun_family = AF_UNIX;
+ strncpy(sun.sun_path, pathname, sizeof(sun.sun_path));
+ sun.sun_path[sizeof(sun.sun_path) - 1] = '\0';
+
+ ret = connect(fd, (struct sockaddr *) &sun, sizeof(sun));
+ if (ret < 0) {
+ /*
+ * Don't print message on connect error, because connect is used in
+ * normal execution to detect if sessiond is alive.
+ */
+ goto error_connect;
+ }
+
+ return fd;
+
+error_connect:
+ closeret = close(fd);
+ if (closeret) {
+ perror("close");
+ }
+error:
+ return ret;
+}
+
+/*
+ * Creates a AF_UNIX local socket using pathname bind the socket upon creation
+ * and return the fd.
+ */
+static int create_unix_sock(const char *pathname)
+{
+ struct sockaddr_un sun;
+ int fd;
+ int ret = -1;
+
+ /* Create server socket */
+ if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
+ perror("socket");
+ goto error;
+ }
+
+ memset(&sun, 0, sizeof(sun));
+ sun.sun_family = AF_UNIX;
+ strncpy(sun.sun_path, pathname, sizeof(sun.sun_path));
+ sun.sun_path[sizeof(sun.sun_path) - 1] = '\0';
+
+ /* Unlink the old file if present */
+ (void) unlink(pathname);
+ ret = bind(fd, (struct sockaddr *) &sun, sizeof(sun));
+ if (ret < 0) {
+ perror("bind");
+ goto error;
+ }
+
+ return fd;
+
+error:
+ return ret;
+}
+
+/*
+ * Do an accept(2) on the sock and return the new file descriptor. The socket
+ * MUST be bind(2) before.
+ */
+static int accept_unix_sock(int sock)
+{
+ int new_fd;
+ struct sockaddr_un sun;
+ socklen_t len = 0;
+
+ /* Blocking call */
+ new_fd = accept(sock, (struct sockaddr *) &sun, &len);
+ if (new_fd < 0) {
+ perror("accept");
+ }
+
+ return new_fd;
+}
+
+void *thread_recv(void *data)
+{
+ int ret, new_sock, sock, fds[3] = {-1, -1, -1};
+ char buf[4];
+ ssize_t len;
+
+ sock = create_unix_sock(sockpath);
+ if (sock < 0) {
+ fail("Create unix socket at %s", sockpath);
+ goto error;
+ }
+
+ OK(sock >= 0, "Unix socket %d created at %s", sock, sockpath);
+
+ ret = listen(sock, 10);
+ if (ret < 0) {
+ fail("Listen on unix socket %d", sock);
+ goto error;
+ }
+
+ /* Notify we are ready to test. */
+ thread_recv_ready = 1;
+
+ new_sock = accept_unix_sock(sock);
+ if (new_sock < 0) {
+ fail("Accept on unix sock %d", sock);
+ close(sock);
+ goto error;
+ }
+
+ /* First receive a normal message saying "hello" to make sure the recvmsg
+ * call is not borked. */
+ len = recv_unix_sock(new_sock, buf, sizeof(buf));
+ if (len < 0) {
+ fail("Recv normal data failed");
+ goto error;
+ }
+ OK(len == sizeof(buf) &&
+ strncmp(buf, "hello", sizeof(buf)) == 0,
+ "Data received successfully");
+
+ len = recv_fds_unix_sock(new_sock, fds, 3);
+ if (len < 0) {
+ /* This is suppose to fail with a errno set to EACCESS. */
+ OK(errno == EACCES,
+ "Passing INET socket denied.");
+ } else {
+ fail("Received INET socket through the unix socket");
+ }
+
+ close(sock);
+ close(new_sock);
+ close(fds[0]);
+ close(fds[1]);
+ close(fds[2]);
+
+error:
+ thread_recv_ready = -1;
+ return NULL;
+}
+
+void *thread_send(void *data)
+{
+ int sock, fds[3], pipe_fds[2];
+ ssize_t len;
+
+ sock = connect_unix_sock(sockpath);
+ if (sock < 0) {
+ fail("Unable to connect to unix socket at %s", sockpath);
+ goto error;
+ }
+
+ if (pipe(pipe_fds) < 0) {
+ fail("Unable to create pipe");
+ goto error;
+ }
+
+ /* First send regular data. */
+ len = send_unix_sock(sock, "hello", 4);
+ if (len < 0) {
+ fail("Sending regular data.");
+ goto error;
+ }
+
+ /*
+ * We are going to pass 3 fds, two of them are pipse in position 0 and 2
+ * and the inet socket is at position 1.
+ */
+ fds[0] = pipe_fds[0];
+ fds[1] = *((int *)data);
+ fds[2] = pipe_fds[1];
+
+ len = send_fds_unix_sock(sock, fds, 3);
+ if (len < 0) {
+ fail("Send inet socket through Unix sock");
+ goto error;
+ }
+ OK(len == 1, "Inet socket %d sent successfully.", fds[1]);
+
+error:
+ if (sock >= 0) {
+ close(sock);
+ }
+ if (pipe_fds[0] >= 0) {
+ close(pipe_fds[0]);
+ }
+ if (pipe_fds[1] >= 0) {
+ close(pipe_fds[1]);
+ }
+ return NULL;
+}
+
+/*
+ * This test will spawn two thread, one accepting a Unix socket connection
+ * which will recv the fd(s). The second thread will connect and send the fds.
+ * Usually this is between processes but for the sake of the test threads are
+ * enough.
+ */
+static void test_inet_socket(void)
+{
+ int ret, i, inet_sock = -1;
+ void *status;
+ pthread_t th[2];
+ struct sockaddr_in addr;
+ const char *ip = "93.95.227.222";
+
+ /*
+ * First of all, we are going to try to create an inet socket to a public
+ * known IP being www.torproject.org --> 93.95.227.222.
+ */
+ inet_sock = socket(AF_INET, SOCK_STREAM, 0);
+ if (inet_sock < 0) {
+ fail("Creating inet socket");
+ goto error;
+ }
+
+ addr.sin_family = AF_INET;
+ addr.sin_port = htons(443);
+ inet_pton(addr.sin_family, ip, &addr.sin_addr);
+ memset(addr.sin_zero, 0, sizeof(addr.sin_zero));
+
+ ret = connect(inet_sock, (struct sockaddr *) &addr, sizeof(addr));
+ if (ret < 0) {
+ fail("Unable to connect inet socket");
+ goto error;
+ }
+
+ OK(!ret, "Inet socket %d created connected to %s", inet_sock, ip);
+
+ ret = pthread_create(&th[0], NULL, thread_recv, NULL);
+ if (ret < 0) {
+ fail("pthread_create thread recv");
+ goto error;
+ }
+
+ /* Active wait for the thread recv to be ready. */
+ while (thread_recv_ready == 0) {
+ continue;
+ }
+
+ if (thread_recv_ready == -1) {
+ goto error;
+ }
+
+ ret = pthread_create(&th[1], NULL, thread_send, (void *) &inet_sock);
+ if (ret < 0) {
+ fail("pthread_create thread send");
+ goto error;
+ }
+
+ for (i = 0; i < 2; i++) {
+ ret = pthread_join(th[i], &status);
+ if (ret < 0) {
+ perror("pthread_join");
+ }
+ }
+
+error:
+ if (inet_sock >= 0) {
+ close(inet_sock);
+ }
+ unlink(sockpath);
+ return;
+}
+
+int main(int argc, char **argv)
+{
+ /* Libtap call for the number of tests planned. */
+ plan_tests(NUM_TESTS);
+
+ test_inet_socket();
+
+ return 0;
+}
diff --git a/tests/test_list b/tests/test_list
index bb812b1..fb320db 100644
--- a/tests/test_list
+++ b/tests/test_list
@@ -1,5 +1,6 @@
./test_connect
./test_dns
+./test_fd_passing
./test_socket
./unit/test_onion
./unit/test_connection
1
0

[translation/tails-misc_completed] Update translations for tails-misc_completed
by translation@torproject.org 22 Oct '14
by translation@torproject.org 22 Oct '14
22 Oct '14
commit c47cafe40db282b36f21b772b76a800a00c3f260
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 22 19:15:41 2014 +0000
Update translations for tails-misc_completed
---
uk.po | 181 ++++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 100 insertions(+), 81 deletions(-)
diff --git a/uk.po b/uk.po
index cd367d6..beb23a6 100644
--- a/uk.po
+++ b/uk.po
@@ -5,15 +5,15 @@
# Translators:
# jonny_nut, 2014
# LinuxChata, 2014
-# Lomil_da <lomil97(a)gmail.com>, 2013
+# Pinro Lomil <lomil97(a)gmail.com>, 2013
# Андрій Бандура <andriykopanytsia(a)gmail.com>, 2014
-# PersonalJesus <vladyslavpoghrebniakov(a)gmail.com>, 2014
+# Владислав <vladyslavpoghrebniakov(a)gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-05-29 00:14+0200\n"
-"PO-Revision-Date: 2014-05-31 10:51+0000\n"
+"POT-Creation-Date: 2014-10-15 17:57+0200\n"
+"PO-Revision-Date: 2014-10-22 19:11+0000\n"
"Last-Translator: LinuxChata\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/torproject/language/uk/)\n"
"MIME-Version: 1.0\n"
@@ -22,11 +22,11 @@ msgstr ""
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:43
+#: config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:42
msgid "Tor is ready"
msgstr "Tor готовий"
-#: config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:44
+#: config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:43
msgid "You can now access the Internet."
msgstr "Тепер Ви можете отримати доступ до Інтернет."
@@ -50,7 +50,7 @@ msgstr "<h1>Допоможіть нам виправити цю помилку!<
#: config/chroot_local-includes/usr/local/bin/gpgApplet:136
msgid "OpenPGP encryption applet"
-msgstr "апплет шифрування OpenPGP"
+msgstr "Апплет шифрування OpenPGP"
#: config/chroot_local-includes/usr/local/bin/gpgApplet:139
msgid "Exit"
@@ -204,22 +204,6 @@ msgstr "Вихід GnuPG:"
msgid "Other messages provided by GnuPG:"
msgstr "Інші повідомлення, що надаються GnuPG:"
-#: config/chroot_local-includes/usr/local/bin/iceweasel:12
-msgid "Tor is not ready"
-msgstr "Tor не готовий"
-
-#: config/chroot_local-includes/usr/local/bin/iceweasel:13
-msgid "Tor is not ready. Start Tor Browser anyway?"
-msgstr "Tor не готовий. Запустити Tor у будь-якому разі?"
-
-#: config/chroot_local-includes/usr/local/bin/iceweasel:14
-msgid "Start Tor Browser"
-msgstr "Запустити Tor Browser"
-
-#: config/chroot_local-includes/usr/local/bin/iceweasel:15
-msgid "Cancel"
-msgstr "Відмова"
-
#: config/chroot_local-includes/usr/local/lib/shutdown-helper-applet:39
msgid "Shutdown Immediately"
msgstr "Негайно вимкнути"
@@ -324,38 +308,13 @@ msgid ""
"You might prefer to restart Tails and disable MAC spoofing. See the <a href='file:///usr/share/doc/first_steps/startup_options/mac_spoofing.en.html'>documentation</a>."
msgstr "Підміна MAC не вдалася для мережевої карти${nic_name} (${nic}). Помилку не вдалося виправити, тому мережа повністю вимкнена.\nМожливо, ви віддасте перевагу перевантаженню Tails і вимкненню підміни MAC. Див. <a href= \" file:///usr/share/doc/решка/сайті/doc/first_steps/startup_options/mac_spoofing.en.html'>документацію</a>."
-#: config/chroot_local-includes/usr/local/bin/tails-start-i2p:62
-msgid "Starting I2P..."
-msgstr "Запуск I2P..."
-
-#: config/chroot_local-includes/usr/local/bin/tails-start-i2p:63
-msgid "The I2P router console will be opened on start."
-msgstr "I2P маршрутизатор консолі буде відкритий при старті."
-
-#: config/chroot_local-includes/usr/local/bin/tails-start-i2p:82
-#: config/chroot_local-includes/usr/local/bin/tails-start-i2p:124
-msgid "I2P failed to start"
-msgstr "Помилка підключення до I2P"
-
-#: config/chroot_local-includes/usr/local/bin/tails-start-i2p:83
-msgid ""
-"Make sure that you have a working Internet connection, then try to start I2P"
-" again."
-msgstr "Переконайтеся, що у Вас є підключення до Інтернету і спробуйте знову запусти I2P."
-
-#: config/chroot_local-includes/usr/local/bin/tails-start-i2p:125
-msgid ""
-"Something went wrong when I2P was starting. Look in the logs in the "
-"following directory for more information:"
-msgstr "Щось пішло не так під час запуску I2P. Додаткова інформація знаходиться у логах у наступному каталозі:"
-
#: config/chroot_local-includes/usr/local/bin/tails-upgrade-frontend-wrapper:19
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:57
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:62
msgid "error:"
msgstr "помилка:"
#: config/chroot_local-includes/usr/local/bin/tails-upgrade-frontend-wrapper:20
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:58
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:63
msgid "Error"
msgstr "Помилка"
@@ -389,77 +348,133 @@ msgid ""
" more...</a>"
msgstr "<a href='file:///usr/share/doc/tails/website/doc/advanced_topics/virtualization.en.html'>Дізнатися більше...</a>"
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:68
+#: config/chroot_local-includes/usr/local/bin/tor-browser:18
+msgid "Tor is not ready"
+msgstr "Tor не готовий"
+
+#: config/chroot_local-includes/usr/local/bin/tor-browser:19
+msgid "Tor is not ready. Start Tor Browser anyway?"
+msgstr "Tor не готовий. Запустити Tor у будь-якому разі?"
+
+#: config/chroot_local-includes/usr/local/bin/tor-browser:20
+msgid "Start Tor Browser"
+msgstr "Запустити Tor Browser"
+
+#: config/chroot_local-includes/usr/local/bin/tor-browser:21
+msgid "Cancel"
+msgstr "Відмова"
+
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:73
msgid "Do you really want to launch the Unsafe Browser?"
msgstr "Ви дійсно хочете запустити небезпечний браузер?"
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:70
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:75
msgid ""
"Network activity within the Unsafe Browser is <b>not anonymous</b>. Only use"
" the Unsafe Browser if necessary, for example if you have to login or "
"register to activate your Internet connection."
msgstr "Мережева активність Небезпечного Браузера <b>не анонімна</b>. Використовуйте Небезпечний браузер тільки у разі необхідності, наприклад, якщо Вам потрібно увійти і зареєструватися для активації Вашого мережного з'єднання."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:71
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:76
msgid "_Launch"
msgstr "_Запуск"
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:72
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:77
msgid "_Exit"
msgstr "_Вихід"
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:82
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:87
msgid "Starting the Unsafe Browser..."
-msgstr "Запуск небезпечного браузера..."
+msgstr "Запуск ненадійного браузера..."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:83
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:88
msgid "This may take a while, so please be patient."
msgstr "Це може зайняти деякий час, будь-ласка зачекайте."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:101
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:106
msgid "Failed to setup chroot."
msgstr "Не вдалося встановити chroot."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:175
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:180
#: ../config/chroot_local-includes/usr/share/applications/unsafe-browser.desktop.in.h:1
msgid "Unsafe Browser"
-msgstr "Небезпечний браузер"
+msgstr "Ненадійний браузер"
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:215
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:236
msgid "Shutting down the Unsafe Browser..."
msgstr "Вимкнення небезпечного браузера..."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:216
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:237
msgid ""
"This may take a while, and you may not restart the Unsafe Browser until it "
"is properly shut down."
msgstr "Це може зайняти деякий час, і Ви не можете перезавантажувати Небезпечний Браузер, поки він правильно не вимкнеться."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:228
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:249
msgid "Failed to restart Tor."
msgstr "Не вдалося перезапустити Tor."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:236
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:257
msgid ""
"Another Unsafe Browser is currently running, or being cleaned up. Please "
"retry in a while."
msgstr "Інший Небезпечна Браузер у даний час працює або очищається. Повторіть спробу через деякий час."
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:249
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:270
msgid ""
"No DNS server was obtained through DHCP or manually configured in "
"NetworkManager."
msgstr "Жоден DNS-сервер не був отриманий через DHCP або не був налаштований вручну у NetworkManager."
#: config/chroot_local-includes/usr/share/tails/truecrypt-wrapper.disabled:11
-msgid "TrueCrypt will soon be removed from Tails"
-msgstr "TrueCrypt незабаром буде видалений з Tails"
+msgid "TrueCrypt will be removed in Tails 1.2.1"
+msgstr "TrueCrypt буде видалений в Tails 1.2.1"
#: config/chroot_local-includes/usr/share/tails/truecrypt-wrapper.disabled:12
msgid ""
-"TrueCrypt will soon be removed from Tails due to license and development "
-"concerns."
-msgstr "TrueCrypt незабаром буде видалений з Tails відповідно до ліцензії та у зв'язку з проблемами розробки."
+"TrueCrypt is no longer maintained and is said to be insecure by its own "
+"authors. Therefore, it will be removed in Tails 1.2.1 (November 25). We "
+"recommend that you learn how to <a "
+"href='file:///usr/share/doc/tails/website/doc/encryption_and_privacy/truecrypt.en.html#cryptsetup'>open"
+" TrueCrypt volumes with cryptsetup</a> as soon as possible."
+msgstr "TrueCrypt більше не підтримується і, як було сказано авторами, є ненадійним. Тому, він буде вилучений в Tails 1.2.1 (25 листопада). Ми рекомендуємо вам дізнатися, як <a href='file:///usr/share/doc/tails/website/doc/encryption_and_privacy/truecrypt.en.html#cryptsetup'>відкрити розділи TrueCrypt з cryptsetup</a> якнайскоріше."
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:30
+msgid "I2P failed to start"
+msgstr "Помилка підключення до I2P"
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:31
+msgid ""
+"Something went wrong when I2P was starting. Check the logs in /var/log/i2p "
+"for more information."
+msgstr "Щось пішло не так під час запуску I2P. Перевірте журнали у /var/log/i2p для отримання додаткової інформації."
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:42
+msgid "I2P's router console is ready"
+msgstr "I2P консоль маршрутизатора готова"
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:43
+msgid "You can now access I2P's router console on http://127.0.0.1:7657."
+msgstr "Тепер ви можете отримати доступ до консолі маршрутизатора I2P по адресу http://127.0.0.1:7657."
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:48
+msgid "I2P is not ready"
+msgstr "I2P не готовий"
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:49
+msgid ""
+"Eepsite tunnel not built within six minutes. Check the router console at "
+"http://127.0.0.1:7657/logs or the logs in /var/log/i2p for more information."
+" Reconnect to the network to try again."
+msgstr "Eepsite тунель не був створений протягом шести хвилин. Перевірте консоль маршрутизатора за адресою http://127.0.0.1:7657/logs або журнали в /var/log/i2p для отримання додаткової інформації. Відключіться і підключіться до мережі, щоб спробувати знову."
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:59
+msgid "I2P is ready"
+msgstr "I2P готовий"
+
+#: config/chroot_local-includes/usr/local/sbin/tails-i2p:60
+msgid "You can now access services on I2P."
+msgstr "Тепер ви можете отримати доступ до сервісів I2P."
#: ../config/chroot_local-includes/etc/skel/Desktop/Report_an_error.desktop.in.h:1
msgid "Report an error"
@@ -474,17 +489,13 @@ msgstr "Документація по Tails"
msgid "Learn how to use Tails"
msgstr "Навчіться користуватися Tails"
-#: ../config/chroot_local-includes/usr/share/applications/i2p.desktop.in.h:1
-msgid "Anonymous overlay network "
-msgstr "Анонімна оверлей мережа"
+#: ../config/chroot_local-includes/usr/share/applications/i2p-browser.desktop.in.h:1
+msgid "Anonymous overlay network browser"
+msgstr "Мережевий браузер з анонімним оверлеєм"
-#: ../config/chroot_local-includes/usr/share/applications/i2p.desktop.in.h:2
-msgid "i2p"
-msgstr "i2p"
-
-#: ../config/chroot_local-includes/usr/share/applications/i2p.desktop.in.h:3
-msgid "Anonymous overlay network"
-msgstr "Анонімна оверлей мережа"
+#: ../config/chroot_local-includes/usr/share/applications/i2p-browser.desktop.in.h:2
+msgid "I2P Browser"
+msgstr "I2P браузер"
#: ../config/chroot_local-includes/usr/share/applications/tails-about.desktop.in.h:2
msgid "Learn more about Tails"
@@ -506,13 +517,21 @@ msgstr "Вимкнення живлення"
msgid "Immediately shut down computer"
msgstr "Негайно вимкнути комп'ютер"
+#: ../config/chroot_local-includes/usr/share/applications/tor-browser.desktop.in.h:1
+msgid "Tor Browser"
+msgstr "Tor Browser"
+
+#: ../config/chroot_local-includes/usr/share/applications/tor-browser.desktop.in.h:2
+msgid "Anonymous Web Browser"
+msgstr "Анонімний веб-браузер"
+
#: ../config/chroot_local-includes/usr/share/applications/unsafe-browser.desktop.in.h:2
msgid "Browse the World Wide Web without anonymity"
msgstr "Перегляд всесвітньої павутини без анонімності"
#: ../config/chroot_local-includes/usr/share/applications/unsafe-browser.desktop.in.h:3
msgid "Unsafe Web Browser"
-msgstr "Небезпечний веб-браузер"
+msgstr "Ненадійний веб-браузер"
#: ../config/chroot_local-includes/usr/share/desktop-directories/Tails.directory.in.h:2
msgid "Tails specific tools"
1
0

[translation/tails-misc] Update translations for tails-misc
by translation@torproject.org 22 Oct '14
by translation@torproject.org 22 Oct '14
22 Oct '14
commit ea92d729b106a037faf17bb20c57a7fc71bfc42a
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 22 19:15:37 2014 +0000
Update translations for tails-misc
---
uk.po | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/uk.po b/uk.po
index 29d8461..beb23a6 100644
--- a/uk.po
+++ b/uk.po
@@ -13,7 +13,7 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-15 17:57+0200\n"
-"PO-Revision-Date: 2014-10-18 18:50+0000\n"
+"PO-Revision-Date: 2014-10-22 19:11+0000\n"
"Last-Translator: LinuxChata\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/torproject/language/uk/)\n"
"MIME-Version: 1.0\n"
@@ -466,7 +466,7 @@ msgid ""
"Eepsite tunnel not built within six minutes. Check the router console at "
"http://127.0.0.1:7657/logs or the logs in /var/log/i2p for more information."
" Reconnect to the network to try again."
-msgstr ""
+msgstr "Eepsite тунель не був створений протягом шести хвилин. Перевірте консоль маршрутизатора за адресою http://127.0.0.1:7657/logs або журнали в /var/log/i2p для отримання додаткової інформації. Відключіться і підключіться до мережі, щоб спробувати знову."
#: config/chroot_local-includes/usr/local/sbin/tails-i2p:59
msgid "I2P is ready"
@@ -491,7 +491,7 @@ msgstr "Навчіться користуватися Tails"
#: ../config/chroot_local-includes/usr/share/applications/i2p-browser.desktop.in.h:1
msgid "Anonymous overlay network browser"
-msgstr ""
+msgstr "Мережевий браузер з анонімним оверлеєм"
#: ../config/chroot_local-includes/usr/share/applications/i2p-browser.desktop.in.h:2
msgid "I2P Browser"
1
0

[tor/master] Switch new time tests to use SIZEOF_TIME_T, not sizeof(time_t)
by nickm@torproject.org 22 Oct '14
by nickm@torproject.org 22 Oct '14
22 Oct '14
commit ac4dd248e187b0327617c84ee2820a03b0a87a16
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Wed Oct 22 12:57:21 2014 -0400
Switch new time tests to use SIZEOF_TIME_T, not sizeof(time_t)
Otherwise, we get implicit conversion warning on some platforms.
---
src/test/test_util.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/test/test_util.c b/src/test/test_util.c
index e1f77b9..a75b6bb 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -471,7 +471,8 @@ test_util_time(void *arg)
b_time.tm_year == (1901-1900));
}
- if (sizeof(time_t) == 8) {
+#if SIZEOF_TIME_T == 8
+ {
/* one of the smallest tm_year values my 64 bit system supports:
* b_time.tm_year == (-292275055LL-1900LL) without clamping */
t_res = -9223372036854775LL;
@@ -490,11 +491,13 @@ test_util_time(void *arg)
tt_assert(b_time.tm_year == (1970-1900) ||
b_time.tm_year == (1-1900));
}
+#endif
/* time_t >= INT_MAX yields a year clamped to 2037 or 9999,
* depending on whether the implementation of the system gmtime(_r)
* sets struct tm (9999) or not (2037) */
- if (sizeof(time_t) == 4 || sizeof(time_t) == 8) {
+#if SIZEOF_TIME_T == 4 || SIZEOF_TIME_T == 8
+ {
t_res = 3*(1 << 29);
tor_gmtime_r(&t_res, &b_time);
tt_assert(b_time.tm_year == (2021-1900));
@@ -504,8 +507,10 @@ test_util_time(void *arg)
tt_assert(b_time.tm_year == (2037-1900) ||
b_time.tm_year == (2038-1900));
}
+#endif
- if (sizeof(time_t) == 8) {
+#if SIZEOF_TIME_T == 8
+ {
/* one of the largest tm_year values my 64 bit system supports:
* b_time.tm_year == (292278994L-1900L) without clamping */
t_res = 9223372036854775LL;
@@ -524,6 +529,7 @@ test_util_time(void *arg)
tt_assert(b_time.tm_year == (2037-1900) ||
b_time.tm_year == (9999-1900));
}
+#endif
/* Test {format,parse}_rfc1123_time */
1
0