tor-commits
Threads by month
- ----- 2025 -----
- 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

20 Oct '14
commit b82be6cf6643a438f846228225d2309f91f3c999
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Sun Oct 19 21:39:50 2014 -0400
Fold 13471 into changelog and releasenotes
---
ChangeLog | 5 +++++
ReleaseNotes | 5 +++++
changes/bug13471 | 5 -----
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index da39a94..d5915b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,11 @@ Changes in version 0.2.5.9-rc - 2014-10-xx
today support TLS 1.0 or later, so we can safely turn off support
for this old (and insecure) protocol. Fixes bug 13426.
+ o Major bugfixes (openssl bug workaround):
+ - Avoid crashing when using OpenSSL version 0.9.8zc, 1.0.0o, or
+ 1.0.1j, built with the 'no-ssl3' configuration option. Fixes
+ bug 13471. This is a workaround for an OpenSSL bug.
+
o Minor bugfixes:
- Disable the sandbox name resolver cache when running tor-resolve:
tor-resolve doesn't use the sandbox code, and turning it on was
diff --git a/ReleaseNotes b/ReleaseNotes
index fb045aa..7386c42 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -128,6 +128,11 @@ Changes in version 0.2.5.xx - 2014-10-xx
attacker from causing a microdescriptor collision, because the
router's identity is not forgeable.
+ o Major bugfixes (openssl bug workaround):
+ - Avoid crashing when using OpenSSL version 0.9.8zc, 1.0.0o, or
+ 1.0.1j, built with the 'no-ssl3' configuration option. Fixes
+ bug 13471. This is a workaround for an OpenSSL bug.
+
o Major bugfixes (client):
- Perform circuit cleanup operations even when circuit
construction operations are disabled (because the network is
diff --git a/changes/bug13471 b/changes/bug13471
deleted file mode 100644
index c116a4a..0000000
--- a/changes/bug13471
+++ /dev/null
@@ -1,5 +0,0 @@
- o Major bugfixes (openssl bug workaround):
- - Avoid crashing when using OpenSSL version 0.9.8zc, 1.0.0o, or
- 1.0.1j, built with the 'no-ssl3' configuration option. Fixes
- bug 13471. This is a workaround for an OpenSSL bug.
-
1
0

[tor/release-0.2.5] Re-run format-changelog and set the release date
by nickm@torproject.org 20 Oct '14
by nickm@torproject.org 20 Oct '14
20 Oct '14
commit 056ff52c5321d0678cf4175b5eb30be2ba951cb8
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Sun Oct 19 21:40:53 2014 -0400
Re-run format-changelog and set the release date
---
ChangeLog | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d5915b5..4396ee4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,4 @@
-Changes in version 0.2.5.9-rc - 2014-10-xx
-
+Changes in version 0.2.5.9-rc - 2014-10-20
Tor 0.2.5.9-rc is the third release candidate for the Tor 0.2.5.x
series. It contains a response to the recent "POODLE" attack against
SSL3 (which doesn't affect Tor), and a response to a crash bug caused
@@ -13,8 +12,8 @@ Changes in version 0.2.5.9-rc - 2014-10-xx
o Major bugfixes (openssl bug workaround):
- Avoid crashing when using OpenSSL version 0.9.8zc, 1.0.0o, or
- 1.0.1j, built with the 'no-ssl3' configuration option. Fixes
- bug 13471. This is a workaround for an OpenSSL bug.
+ 1.0.1j, built with the 'no-ssl3' configuration option. Fixes bug
+ 13471. This is a workaround for an OpenSSL bug.
o Minor bugfixes:
- Disable the sandbox name resolver cache when running tor-resolve:
1
0

[webwml/master] update the mirrors list now that we've moved dist/
by arma@torproject.org 20 Oct '14
by arma@torproject.org 20 Oct '14
20 Oct '14
commit d306be59b2771c159eaf762e6f9a5b65fd48e34c
Author: Roger Dingledine <arma(a)torproject.org>
Date: Sun Oct 19 21:32:12 2014 -0400
update the mirrors list now that we've moved dist/
I think this step will remove all the mirrors that haven't
switched to the new rsync command. And then later we can run
it again and add back in the ones that switch next.
---
include/mirrors-table.wmi | 935 ++++-----------------------------------------
include/tor-mirrors.csv | 144 +++----
2 files changed, 140 insertions(+), 939 deletions(-)
diff --git a/include/mirrors-table.wmi b/include/mirrors-table.wmi
index dfc708a..76b78ca 100644
--- a/include/mirrors-table.wmi
+++ b/include/mirrors-table.wmi
@@ -1,100 +1,15 @@
<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>IS</td>
- <td>Frenn vun der Enn A.S.B.L.</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://torproject.lu/dist/">http</a></td>
- <td><a href="http://torproject.lu/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Piratenpartei Bayern</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tormirror.piratenpartei-bayern.de/dist/">http</a></td>
- <td><a href="http://tormirror.piratenpartei-bayern.de">http</a></td>
- <td><a href="http://tormirror.piratenpartei-bayern.de/dist/">https</a></td>
- <td><a href="https://tormirror.piratenpartei-bayern.de">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </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.or/dist/g">https</a></td>
- <td><a href="http://tor.hossi-polloiorg">https</a></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>ES</td>
-
- <td>Tor Supporter</td>
+ <td>torproject.is</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.zilog.es/dist/">http</a></td>
- <td><a href="http://tor.zilog.es/">http</a></td>
+ <td><a href="http://www.torproject.is/dist/">http</a></td>
+ <td><a href="http://www.torproject.is/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -103,66 +18,15 @@
<tr>
- <td>US</td>
+ <td>AT</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>DE</td>
-
- <td>spline</td>
-
- <td>Up to date</td>
-
- <td><a href="ftp://ftp.spline.de/pub/tor">ftp</a></td>
- <td><a href="http://tor.spline.de/dist/">http</a></td>
- <td><a href="http://tor.spline.de/">http</a></td>
- <td><a href="https://tor.spline.inf.fu-berlin.de/dist/">https</a></td>
- <td><a href="https://tor.spline.inf.fu-berlin.de/">https</a></td>
- <td><a href="rsync://ftp.spline.de/tor/dist">rsync</a></td>
- <td><a href="rsync://ftp.spline.de/tor">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>RO</td>
-
- <td>me0w.cc</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.me0w.cc/dist/">http</a></td>
- <td><a href="http://tor.me0w.cc/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>borgmann.tv</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.borgmann.tv/dist/">http</a></td>
- <td><a href="http://tor.borgmann.tv/">http</a></td>
+ <td><a href="http://tor.dont-know-me.at/dist/">http</a></td>
+ <td><a href="http://tor.dont-know-me.at/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -171,15 +35,15 @@
<tr>
- <td>AT</td>
+ <td>INT</td>
- <td>Tor Supporter</td>
+ <td>CoralCDN</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.dont-know-me.at/dist/">http</a></td>
- <td><a href="http://tor.dont-know-me.at/">http</a></td>
+ <td><a href="http://www.torproject.org.nyud.net/dist/">http</a></td>
+ <td><a href="http://www.torproject.org.nyud.net/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -205,83 +69,32 @@
<tr>
- <td>BE</td>
-
- <td>teambelgium</td>
-
- <td>Up to date</td>
-
- <td><a href="ftp://tor.teambelgium.net:2121/torproject/">ftp</a></td>
- <td><a href="http://tor.teambelgium.net:8080/dist/">http</a></td>
- <td><a href="http://tor.teambelgium.net:8080/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>beme it</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.beme-it.de/dist/">http</a></td>
- <td><a href="http://tor.beme-it.de/">http</a></td>
- <td><a href="https://tor.beme-it.de/dist/">https</a></td>
- <td><a href="https://tor.beme-it.de/">https</a></td>
- <td><a href="rsync://tor.beme-it.de/tor/dist">rsync</a></td>
- <td><a href="rsync://tor.beme-it.de/tor">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>MX</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </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>
-
-<tr>
-
<td>US</td>
- <td>AskApache</td>
+ <td>HackThisSite.org</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.askapache.com/dist/">http</a></td>
- <td><a href="http://tor.askapache.com/">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://mirror.hackthissite.org/tor">http</a></td>
+ <td><a href="http://tor.hackthissite.org/">http</a></td>
+ <td><a href="https://mirror.hackthissite.org/tor">https</a></td>
+ <td><a href="https://tor.hackthissite.org/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>FR</td>
+ <td>IS</td>
- <td>Tor Supporter</td>
+ <td>TheOnionRouter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.mirror.chekanov.net/dist/">http</a></td>
- <td><a href="http://tor.mirror.chekanov.net/">http</a></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>
@@ -290,68 +103,51 @@
<tr>
- <td>NL</td>
+ <td>IS</td>
- <td>Amorphis</td>
+ <td>myRL.net</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.amorphis.eu/dist/">http</a></td>
- <td><a href="http://tor.amorphis.eu/">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.myrl.net/dist/">http</a></td>
+ <td><a href="http://tor.myrl.net/">http</a></td>
+ <td><a href="https://tor.myrl.net/dist/">https</a></td>
+ <td><a href="https://tor.myrl.net/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>DE</td>
- <td>HackThisSite.org</td>
+ <td>PW</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://mirror.hackthissite.org/tor">http</a></td>
- <td><a href="http://tor.hackthissite.org/">http</a></td>
- <td><a href="https://mirror.hackthissite.org/tor">https</a></td>
- <td><a href="https://tor.hackthissite.org/">https</a></td>
- <td> - </td>
+ <td><a href="http://tor.pw.is/dist/">http</a></td>
+ <td><a href="http://tor.pw.is/">http</a></td>
<td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
<td> - </td>
- <td><a href="http://tor.linuxlounge.net/dist/">http</a></td>
- <td><a href="http://tor.linuxlounge.net/">http</a></td>
- <td><a href="https://tor.linuxlounge.net/dist/">https</a></td>
- <td><a href="https://tor.linuxlounge.net/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>AU</td>
+ <td>FR</td>
- <td>CoffsWiFi</td>
+ <td>stalkr.net</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><a href="http://tor.stalkr.net/dist/">http</a></td>
+ <td><a href="http://tor.stalkr.net/">http</a></td>
+ <td><a href="https://tor.stalkr.net/dist/">https</a></td>
+ <td><a href="https://tor.stalkr.net/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -360,13 +156,13 @@
<td>AT</td>
- <td>cyberarmy</td>
+ <td>TorNinurtaName</td>
<td>Up to date</td>
<td> - </td>
- <td> - </td>
- <td><a href="http://tor.cyberarmy.at/">http</a></td>
+ <td><a href="http://tor.ninurta.name/dist/">http</a></td>
+ <td><a href="http://tor.ninurta.name/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -375,332 +171,94 @@
<tr>
- <td>IS</td>
+ <td>FR</td>
- <td>TheOnionRouter</td>
+ <td>Tor Supporter</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><a href="http://tor.fr33tux.org/dist/">http</a></td>
+ <td><a href="http://tor.fr33tux.org">http</a></td>
+ <td><a href="https://tor.fr33tux.org/dist/">https</a></td>
+ <td><a href="https://tor.fr33tux.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>DE</td>
+ <td>GR</td>
- <td>crazyhaze.de</td>
+ <td>Tor Supporter</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><a href="https://tor.void.gr/dist/">http</a></td>
+ <td><a href="https://tor.void.gr">http</a></td>
+ <td><a href="https://tor.void.gr/dist/">https</a></td>
+ <td><a href="https://tor.void.gr">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>DE</td>
+ <td>EE</td>
- <td>chaos darmstadt</td>
+ <td>CyberSIDE</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://mirrors.chaos-darmstadt.de/tor-mirror/dist/">http</a></td>
- <td><a href="http://mirrors.chaos-darmstadt.de/tor-mirror/">http</a></td>
- <td> - </td>
+ <td><a href="http://cyberside.net.ee/tor/">http</a></td>
+ <td><a href="http://cyberside.planet.ee/tor/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
-</tr>
-
-<tr>
-
- <td>RU</td>
-
- <td>Soviet Anonymous</td>
-
- <td>Up to date</td>
-
- <td><a href="ftp://creep.im/mirrors/tor">ftp</a></td>
- <td><a href="http://creep.im/tor/dist/">http</a></td>
- <td><a href="http://creep.im/tor">http</a></td>
- <td><a href="https://creep.im/tor/dist/">https</a></td>
- <td><a href="https://creep.im/tor">https</a></td>
- <td><a href="rsync://creep.im/tor-dist">rsync</a></td>
- <td><a href="rsync://creep.im/tor">rsync</a></td>
-</tr>
-
-<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>GB</td>
+ <td>US</td>
- <td>torland</td>
+ <td>EFF</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://mirror.torland.me/torproject.org/dist/">http</a></td>
- <td><a href="http://mirror.torland.me/torproject.org/">http</a></td>
- <td><a href="https://mirror.torland.me/torproject.org/dist/">https</a></td>
- <td><a href="https://mirror.torland.me/torproject.org/">https</a></td>
+ <td><a href="https://tor.eff.org/dist/">http</a></td>
+ <td><a href="https://tor.eff.org">http</a></td>
+ <td><a href="https://tor.eff.org/dist/">https</a></td>
+ <td><a href="https://tor.eff.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>CZ</td>
+ <td>AT</td>
- <td>Lightning-bolt.net</td>
+ <td>TechAsk.IT</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://torproject.lightning-bolt.net/dist/">http</a></td>
- <td><a href="http://torproject.lightning-bolt.net/">http</a></td>
- <td> - </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>DE</td>
- <td>myRL.net</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.myrl.net/dist/">http</a></td>
- <td><a href="http://tor.myrl.net/">http</a></td>
- <td><a href="https://tor.myrl.net/dist/">https</a></td>
- <td><a href="https://tor.myrl.net/">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Userzap</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://torprojekt.userzap.de/dist/">http</a></td>
- <td><a href="http://torprojekt.userzap.de">http</a></td>
- <td><a href="https://torprojekt.userzap.de/dist/">https</a></td>
- <td><a href="https://torprojekt.userzap.de">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>US</td>
-
- <td>EPRCI</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.eprci.net/dist/">http</a></td>
- <td><a href="http://tor.eprci.net/">http</a></td>
- <td><a href="https://www.eprci.com/tor/dist/">https</a></td>
- <td><a href="https://www.eprci.com/tor/">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>CA</td>
-
- <td>tor(a)les.net</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.les.net/dist">http</a></td>
- <td><a href="http://tor.les.net/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>PW</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.pw.is/dist/">http</a></td>
- <td><a href="http://tor.pw.is/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>FR</td>
-
- <td>stalkr.net</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.stalkr.net/dist/">http</a></td>
- <td><a href="http://tor.stalkr.net/">http</a></td>
- <td><a href="https://tor.stalkr.net/dist/">https</a></td>
- <td><a href="https://tor.stalkr.net/">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>cYbergueRrilLa AnonyMous NeXus</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="https://tor-mirror.cyberguerrilla.org/dist/">http</a></td>
- <td><a href="https://tor-mirror.cyberguerrilla.org">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Gtor</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://torproject.gtor.org/dist/">http</a></td>
- <td><a href="http://torproject.gtor.org/">http</a></td>
- <td><a href="https://torproject.gtor.org/dist/">https</a></td>
- <td><a href="https://torproject.gtor.org/">https</a></td>
- <td><a href="rsync://torproject.gtor.org/website-mirror/dist/">rsync</a></td>
- <td><a href="rsync://torproject.gtor.org/website-mirror/">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>US</td>
-
- <td>SDL</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://torproject.nexiom.net">http</a></td>
- <td><a href="http://torproject.nexiom.net">http</a></td>
- <td><a href="https://torproject.nexiom.net/dist">https</a></td>
- <td><a href="https://torproject.nexiom.net">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://mirror.velcommuta.de/tor/dist/">http</a></td>
- <td><a href="http://mirror.velcommuta.de/tor/">http</a></td>
- <td><a href="https://mirror.velcommuta.de/tor/dist/">https</a></td>
- <td><a href="https://mirror.velcommuta.de/tor/">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>US</td>
-
- <td>EFF</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="https://tor.eff.org/dist/">http</a></td>
- <td><a href="https://tor.eff.org">http</a></td>
- <td><a href="https://tor.eff.org/dist/">https</a></td>
- <td><a href="https://tor.eff.org">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>GR</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="https://tor.void.gr/dist/">http</a></td>
- <td><a href="https://tor.void.gr">http</a></td>
- <td><a href="https://tor.void.gr/dist/">https</a></td>
- <td><a href="https://tor.void.gr">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Tor Supporter</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
@@ -712,360 +270,3 @@
<td> - </td>
<td> - </td>
</tr>
-
-<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>DE</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.miglix.eu/dist/">http</a></td>
- <td><a href="http://tor.miglix.eu">http</a></td>
- <td><a href="https://tor.miglix.eu/dist/">https</a></td>
- <td><a href="https://tor.miglix.eu">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>FR</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.fr33tux.org/dist/">http</a></td>
- <td><a href="http://tor.fr33tux.org">http</a></td>
- <td><a href="https://tor.fr33tux.org/dist/">https</a></td>
- <td><a href="https://tor.fr33tux.org">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>PL</td>
-
- <td>Sebastian M. Bobrecki</td>
-
- <td>Up to date</td>
-
- <td> - </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>
-
-<tr>
-
- <td>FR</td>
-
- <td>d0wn.biz</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.static.lu/dist/">http</a></td>
- <td><a href="http://tor.static.lu">http</a></td>
- <td><a href="https://tor.static.lu/dist/">https</a></td>
- <td><a href="https://tor.static.lu">https</a></td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>NL</td>
-
- <td>Maxanoo</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.maxanoo.com/dist/">http</a></td>
- <td><a href="http://tor.maxanoo.com/">http</a></td>
- <td> - </td>
- <td> - </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>IT</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td> - </td>
- <td><a href="http://tor.stefanof.com">http</a></td>
- <td> - </td>
- <td> - </td>
- <td><a href="http://tor.stefanof.com/dist">rsync</a></td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>US</td>
-
- <td>Anatomical Networks</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.ventricle.us/dist/">http</a></td>
- <td><a href="http://tor.ventricle.us/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>NL</td>
-
- <td>Hackabit.nl</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> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>FR</td>
-
- <td>BBLN</td>
-
- <td>Up to date</td>
-
- <td><a href="ftp://mirror.bbln.org/torproject/">ftp</a></td>
- <td><a href="http://mirror.bbln.org/torproject/dist/">http</a></td>
- <td><a href="http://mirror.bbln.org/torproject/">http</a></td>
- <td><a href="https://mirror.bbln.org/torproject/dist/">https</a></td>
- <td><a href="https://mirror.bbln.org/torproject/">https</a></td>
- <td><a href="rsync://mirror.bbln.org/torproject/dist/">rsync</a></td>
- <td><a href="rsync://mirror.bbln.org/torproject/">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>US</td>
-
- <td>Ramos Research</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.ramosresearch.com/dist/">http</a></td>
- <td><a href="http://tor.ramosresearch.com/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.euve33747.vserver.de/dist">http</a></td>
- <td><a href="http://tor.euve33747.vserver.de/">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>NL</td>
-
- <td>sky-ip.org</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> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>ITsn</td>
-
- <td>Up to date</td>
-
- <td><a href="http://tor.pajonzeck.de/dist/">ftp</a></td>
- <td><a href="https://tor.pajonzeck.de/dist/">http</a></td>
- <td><a href="http://tor.pajonzeck.de/">http</a></td>
- <td> - </td>
- <td><a href="https://tor.pajonzeck.de/">https</a></td>
- <td><a href="rsync://tor.pajonzeck.de/tor/dist">rsync</a></td>
- <td><a href="rsync://tor.pajonzeck.de/tor">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>AT</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </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>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>US</td>
-
- <td>Setec Administrator</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.nuclear-weapons.net/dist">http</a></td>
- <td><a href="http://tor.nuclear-weapons.net">http</a></td>
- <td> - </td>
- <td><a href="https://tor.nuclear-weapons.net">https</a></td>
- <td><a href="https://tor.nuclear-weapons.net/dist">rsync</a></td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://torproject.hactar.bz/dist/">http</a></td>
- <td><a href="http://torproject.hactar.bz">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
-</tr>
-
-<tr>
-
- <td>FR</td>
-
- <td>Tor Supporter</td>
-
- <td>Up to date</td>
-
- <td> - </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>US</td>
-
- <td>Freedom of the Press Foundation</td>
-
- <td>Up to date</td>
-
- <td> - </td>
- <td><a href="http://tor.pressfreedomfoundation.org/dist/">http</a></td>
- <td><a href="http://tor.pressfreedomfoundation.org">http</a></td>
- <td><a href="https://tor.pressfreedomfoundation.org/dist/">https</a></td>
- <td><a href="https://tor.pressfreedomfoundation.org">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>
diff --git a/include/tor-mirrors.csv b/include/tor-mirrors.csv
index fc106ab..5b228b6 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/, , , , Fri Aug 22 14: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/, , , , Mon Sep 1 17: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/, , , , Thu Oct 9 19:32:00 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, Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Wed Oct 8 16:48:11 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/, , , Sun Aug 24 16:19:07 2014
-http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, TRUE, TRUE, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Thu Oct 9 19:32:00 2014
-haskell at gmx.es, Tor Supporter, ES, Spain, Europe, TRUE, FALSE, No, http://tor.zilog.es/, , , , http://tor.zilog.es/dist/, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, Tor Supporter, US, United States, US, TRUE, FALSE, No, http://199.175.55.215/, , , , http://199.175.55.215/dist/, , , , Thu Oct 9 19:32:00 2014
-margus.random at mail.ee, CyberSIDE, EE, Estonia, EE, TRUE, FALSE, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, torproject.is, IS, Iceland, IS, TRUE, FALSE, No, http://www.torproject.is/, , , , http://www.torproject.is/dist/, , , , Thu Oct 9 19:32:00 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, , Thu Oct 9 19:32:00 2014
-Tor Fan, me0w.cc, RO, Romania, RO, TRUE, FALSE, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, borgmann.tv, DE, Germany, DE, TRUE, FALSE, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, TRUE, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Thu Oct 9 19:32:00 2014
-coralcdn.org, CoralCDN, INT, International, INT, TRUE, FALSE, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , Sat Oct 4 04:01:54 2014
-Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, FALSE, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Thu Oct 9 19:32:00 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, , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-webmaster AT askapache DOT com, AskApache, US, California, US, TRUE, FALSE, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Thu Oct 9 19:32:00 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 8 16:48:11 2014
-root AT amorphis DOT eu, Amorphis, NL, The Netherlands, Europe, TRUE, FALSE, No, http://tor.amorphis.eu/, , , , http://tor.amorphis.eu/dist/, , , , Thu Oct 9 19:32:00 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, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, TRUE, FALSE, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, cyberarmy, AT, Austria, AT, TRUE, FALSE, No, http://tor.cyberarmy.at/, , , , , , , , Thu Oct 9 19:32:00 2014
-hostmaster AT example DOT com, TheOnionRouter, IS, Iceland, Iceland, TRUE, FALSE, No, http://www.theonionrouter.com/, , , , http://www.theonionrouter.com/dist/, , , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32: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/, , , , Thu Oct 9 19:32:00 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, , Thu Oct 9 19:32:00 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/, Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-Tor Fan, Lightning-bolt.net, CZ, Czech Republic, CZ, TRUE, FALSE, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-tor(a)les.net, tor(a)les.net, CA, Canada, CA, TRUE, FALSE, NO, http://tor.les.net/, , , , http://tor.les.net/dist, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, PW, DE, Germany, DE, TRUE, TRUE, NO, http://tor.pw.is/, , , , http://tor.pw.is/dist/, , , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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, Thu Oct 9 19:32:00 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/, , Thu Oct 9 19:32:00 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, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-jlgaddis AT gnu DOT org, Evil Routers, US, United States, US, TRUE, FALSE, No, http://tor1.evilrouters.net/, , , , http://tor1.evilrouters.net/dist/, , , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-tor TA ninurta TOD name, TorNinurtaName, AT, Austria, AT, TRUE, TRUE, no, http://tor.ninurta.name/, , , , http://tor.ninurta.name/dist/, , , , Thu Oct 2 01:17:37 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 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/, , , Fri Oct 3 23:02:10 2014
-Sebastian, Maxanoo, NL, The Netherlands, Amsterdam, TRUE, FALSE, NO, http://tor.maxanoo.com/, , , , http://tor.maxanoo.com/dist/, , , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-stefano.fenoglio AT gmail DOT com, Tor Supporter, IT, Italy, Europe, TRUE, FALSE, No, http://tor.stefanof.com, , , , , , http://tor.stefanof.com/dist, , Thu Oct 9 19:32:00 2014
-Jacob Henner, Anatomical Networks, US, United States, US, TRUE, TRUE, TRUE, http://tor.ventricle.us/, , , , http://tor.ventricle.us/dist/, , , , Thu Oct 9 19:32:00 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/, , , Thu Oct 9 19:32:00 2014
-Tor Fan, Ramos Research, US, United States, US, TRUE, TRUE, No, http://tor.ramosresearch.com/, , , , http://tor.ramosresearch.com/dist/, , , , Thu Oct 9 19:32:00 2014
-Tor Fan, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor.euve33747.vserver.de/, , , , http://tor.euve33747.vserver.de/dist, , , , Thu Oct 9 19: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/, , , , Thu Oct 9 19:32:00 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, Thu Oct 9 19:32:00 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/, Thu Oct 9 19:32:00 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, , Thu Oct 9 19:32:00 2014
-0x43DE8191, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://torproject.hactar.bz, , , , http://torproject.hactar.bz/dist/, , , , Thu Oct 9 19:32:00 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/, , , , Fri Aug 22 18: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/, , , , Mon Sep 1 21: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/, , , , Sun Oct 19 18:24:41 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, Sun Oct 19 21:34:05 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/, , , Sun Oct 19 05:38:31 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/, , , Sun Aug 24 20:19:07 2014
+http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, TRUE, TRUE, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Sun Oct 19 21:34:05 2014
+haskell at gmx.es, Tor Supporter, ES, Spain, Europe, TRUE, FALSE, No, http://tor.zilog.es/, , , , http://tor.zilog.es/dist/, , , , Sun Oct 19 22:21:05 2014
+Tor Fan, Tor Supporter, US, United States, US, TRUE, FALSE, No, http://199.175.55.215/, , , , http://199.175.55.215/dist/, , , , Sun Oct 19 23:41:01 2014
+margus.random at mail.ee, CyberSIDE, EE, Estonia, EE, TRUE, FALSE, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Sun Oct 19 20:30:28 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, , Sun Oct 19 23:41:01 2014
+Tor Fan, me0w.cc, RO, Romania, RO, TRUE, FALSE, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Sun Oct 19 19:44:35 2014
+Tor Fan, borgmann.tv, DE, Germany, DE, TRUE, FALSE, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Sun Oct 19 23:41:01 2014
+Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, TRUE, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Sun Oct 19 23:41:01 2014
+coralcdn.org, CoralCDN, INT, International, INT, TRUE, FALSE, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , Sun Oct 19 23:41:01 2014
+Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, FALSE, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Sun Oct 19 23:41:01 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, , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 18:24:41 2014
+webmaster AT askapache DOT com, AskApache, US, California, US, TRUE, FALSE, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Sun Oct 19 21:34:05 2014
+Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Sun Oct 19 22:21:05 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, , , Sun Oct 19 15:14:08 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, , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 21:34:05 2014
+paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, TRUE, FALSE, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Sun Oct 19 23:41:01 2014
+Tor Fan, cyberarmy, AT, Austria, AT, TRUE, FALSE, No, http://tor.cyberarmy.at/, , , , , , , , Sun Oct 19 23:41:01 2014
+hostmaster AT example DOT com, TheOnionRouter, IS, Iceland, Iceland, TRUE, FALSE, No, http://www.theonionrouter.com/, , , , http://www.theonionrouter.com/dist/, , , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 23:41:01 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/, , , , Sun Oct 19 21:34:05 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, , Sun Oct 19 19:44:35 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/, Thu Oct 9 23:32:00 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/, , , Sun Oct 19 23:41:01 2014
+Tor Fan, Lightning-bolt.net, CZ, Czech Republic, CZ, TRUE, FALSE, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Sun Oct 19 22:21:05 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/, , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 21:34:05 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/, , , Sun Oct 19 23:41:01 2014
+tor(a)les.net, tor(a)les.net, CA, Canada, CA, TRUE, FALSE, NO, http://tor.les.net/, , , , http://tor.les.net/dist, , , , Sun Oct 19 20:30:28 2014
+Tor Fan, PW, DE, Germany, DE, TRUE, TRUE, NO, http://tor.pw.is/, , , , http://tor.pw.is/dist/, , , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 22:21:05 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, Sun Oct 19 22:21:05 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/, , Sun Oct 19 18:24:41 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, , , Sun Oct 19 18:24:41 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/, , , Sun Oct 19 21:34:05 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/, , , Sun Oct 19 18:24:41 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/, , , Sun Oct 19 21:17:35 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/, , , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 21:34:05 2014
+tor TA ninurta TOD name, TorNinurtaName, AT, Austria, AT, TRUE, TRUE, no, http://tor.ninurta.name/, , , , http://tor.ninurta.name/dist/, , , , Sun Oct 19 21:34:05 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/, , , Sun Oct 19 21:34:05 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/, , , Sun Oct 19 22:12:25 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/, , , Sun Oct 19 21:34:05 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/, , , Sun Oct 19 21:17:35 2014
+Sebastian, Maxanoo, NL, The Netherlands, Amsterdam, TRUE, FALSE, NO, http://tor.maxanoo.com/, , , , http://tor.maxanoo.com/dist/, , , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 15:14:08 2014
+stefano.fenoglio AT gmail DOT com, Tor Supporter, IT, Italy, Europe, TRUE, FALSE, No, http://tor.stefanof.com, , , , , , http://tor.stefanof.com/dist, , Sun Oct 19 22:21:05 2014
+Jacob Henner, Anatomical Networks, US, United States, US, TRUE, TRUE, TRUE, http://tor.ventricle.us/, , , , http://tor.ventricle.us/dist/, , , , Sun Oct 19 23:41:01 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/, , , Sun Oct 19 23:41:01 2014
+Tor Fan, Ramos Research, US, United States, US, TRUE, TRUE, No, http://tor.ramosresearch.com/, , , , http://tor.ramosresearch.com/dist/, , , , Sun Oct 19 23:41:01 2014
+Tor Fan, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor.euve33747.vserver.de/, , , , http://tor.euve33747.vserver.de/dist, , , , Thu Oct 9 23: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/, , , , Sun Oct 19 15:14:08 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, Sun Oct 19 22:21:05 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/, Sun Oct 19 23:41:01 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, , Sun Oct 19 23:41:01 2014
+0x43DE8191, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://torproject.hactar.bz, , , , http://torproject.hactar.bz/dist/, , , , Sun Oct 19 23:41:01 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/, , , , Thu Oct 9 19:32:00 2014
-noc AT bbln DOT org,BBLN,NL,The Netherlands,Europe,TRUE,TRUE,No,http://mirror-nl1.bbln.org/torproject/,http…,,
-noc AT bbln DOT org,BBLN,FR,France,Europe,TRUE,TRUE,No,http://mirror-fr1.bbln.org/torprojec…,,
-noc AT bbln DOT org,BBLN,FR,France,Europe,TRUE,TRUE,No,http://mirror-fr2.bbln.org/torprojec…,,
+opi(a)zeropi.net, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor-mirror.zeropi.net/, , , , http://tor-mirror.zeropi.net/dist/, , , , Sun Oct 19 22:21:05 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/, , Sun Oct 19 23:41:01 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/, , Sun Oct 19 22:21:05 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/, , Sun Oct 19 22:21:05 2014
1
0

[tor/master] explain how to publish tarballs now that webwml has gone to git
by arma@torproject.org 20 Oct '14
by arma@torproject.org 20 Oct '14
20 Oct '14
commit 05791a0b72cbdf5d34fa7ae6660235e9e94945b7
Author: Roger Dingledine <arma(a)torproject.org>
Date: Sun Oct 19 21:27:41 2014 -0400
explain how to publish tarballs now that webwml has gone to git
---
doc/HACKING | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/doc/HACKING b/doc/HACKING
index 2052a9d..e758ffa 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -555,10 +555,13 @@ in their approved versions list.
git tag -u <keyid> tor-0.2.x.y-status
git push origin tag tor-0.2.x.y-status
-8) scp the tarball and its sig to the website in the dist/ directory
-(i.e. /srv/www-master.torproject.org/htdocs/dist/ on vescum). Edit
-"include/versions.wmi" and "Makefile" to note the new version. From your
-website checkout, run ./publish to build and publish the website.
+8a) scp the tarball and its sig to the dist website, i.e.
+/srv/dist-master.torproject.org/htdocs/ on staticiforme. When you want
+it to go live, you run "static-update-component dist.torproject.org"
+on staticiforme.
+
+8b)
+ Edit "include/versions.wmi" and "Makefile" to note the new version.
9) Email the packagers (cc'ing tor-assistants) that a new tarball is up.
1
0
commit fd8c546282aa5b85fbc9dd74765ebf6e6bc126a2
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sun Oct 19 14:33:02 2014 -0700
Use GraphStat constructor to clone
Common pattern among classes is for the constructor to clone if given an
instance of its own type. For example, dict(my_dict) makes a shallow copy.
Doing this for our GraphStats rather than having a custom clone() method.
---
arm/graph_panel.py | 133 ++++++++++++++++++++++------------------------------
1 file changed, 55 insertions(+), 78 deletions(-)
diff --git a/arm/graph_panel.py b/arm/graph_panel.py
index f76df9a..1b3158c 100644
--- a/arm/graph_panel.py
+++ b/arm/graph_panel.py
@@ -128,51 +128,38 @@ class Stat(object):
self._in_process_value[interval] = 0
-class GraphStats:
+class GraphStats(object):
"""
Module that's expected to update dynamically and provide attributes to be
graphed. Up to two graphs (a 'primary' and 'secondary') can be displayed at a
time and timescale parameters use the labels defined in CONFIG['attr.graph.intervals'].
"""
- def __init__(self):
+ def __init__(self, clone = None):
"""
Initializes parameters needed to present a graph.
"""
- # panel to be redrawn when updated (set when added to GraphPanel)
-
- self._graph_panel = None
- self.title = ''
- self.title_stats = []
- self.is_selected = False
- self.is_pause_buffer = False
-
- self.primary = Stat()
- self.secondary = Stat()
-
- # tracks BW events
-
- tor_controller().add_event_listener(self.bandwidth_event, stem.control.EventType.BW)
-
- def clone(self, new_copy=None):
- """
- Provides a deep copy of this instance.
+ if clone:
+ self.title = clone.title
+ self.title_stats = list(clone.title_stats)
+ self.is_selected = clone.is_selected
+ self.is_pause_buffer = True
- Arguments:
- new_copy - base instance to build copy off of
- """
+ self.primary = Stat(clone.primary)
+ self.secondary = Stat(clone.secondary)
+ else:
+ self.title = ''
+ self.title_stats = []
+ self.is_selected = False
+ self.is_pause_buffer = False
- if not new_copy:
- new_copy = GraphStats()
+ self.primary = Stat()
+ self.secondary = Stat()
- new_copy.title = self.title
- new_copy.title_stats = list(self.title_stats)
- new_copy.primary = Stat(self.primary)
- new_copy.secondary = Stat(self.secondary)
+ tor_controller().add_event_listener(self.bandwidth_event, stem.control.EventType.BW)
- new_copy.is_pause_buffer = True
- return new_copy
+ self._graph_panel = None
def event_tick(self):
"""
@@ -224,43 +211,40 @@ class BandwidthStats(GraphStats):
Uses tor BW events to generate bandwidth usage graph.
"""
- def __init__(self, is_pause_buffer = False):
- GraphStats.__init__(self)
- self.title = 'Bandwidth'
-
- # listens for tor reload (sighup) events which can reset the bandwidth
- # rate/burst
+ def __init__(self, clone = None):
+ GraphStats.__init__(self, clone)
- controller = tor_controller()
+ if clone:
+ self.start_time = clone.start_time
+ else:
+ self.title = 'Bandwidth'
- if not is_pause_buffer:
- self.reset_listener(controller, State.INIT, None) # initializes values
+ # listens for tor reload (sighup) events which can reset the bandwidth
+ # rate/burst
- controller.add_status_listener(self.reset_listener)
- self.new_desc_event(None) # updates title params
+ controller = tor_controller()
- # We both show our 'total' attributes and use it to determine our average.
- #
- # If we can get *both* our start time and the totals from tor (via 'GETINFO
- # traffic/*') then that's ideal, but if not then just track the total for
- # the time arm is run.
+ self.reset_listener(controller, State.INIT, None) # initializes values
- read_total = controller.get_info('traffic/read', None)
- write_total = controller.get_info('traffic/written', None)
- start_time = system.start_time(controller.get_pid(None))
+ controller.add_status_listener(self.reset_listener)
+ self.new_desc_event(None) # updates title params
- if read_total and write_total and start_time:
- self.primary.total = int(read_total) / 1024 # Bytes -> KB
- self.secondary.total = int(write_total) / 1024 # Bytes -> KB
- self.start_time = start_time
- else:
- self.start_time = time.time()
+ # We both show our 'total' attributes and use it to determine our average.
+ #
+ # If we can get *both* our start time and the totals from tor (via 'GETINFO
+ # traffic/*') then that's ideal, but if not then just track the total for
+ # the time arm is run.
- def clone(self, new_copy = None):
- if not new_copy:
- new_copy = BandwidthStats(True)
+ read_total = controller.get_info('traffic/read', None)
+ write_total = controller.get_info('traffic/written', None)
+ start_time = system.start_time(controller.get_pid(None))
- return GraphStats.clone(self, new_copy)
+ if read_total and write_total and start_time:
+ self.primary.total = int(read_total) / 1024 # Bytes -> KB
+ self.secondary.total = int(write_total) / 1024 # Bytes -> KB
+ self.start_time = start_time
+ else:
+ self.start_time = time.time()
def reset_listener(self, controller, event_type, _):
self.new_desc_event(None) # updates title params
@@ -400,15 +384,11 @@ class ConnStats(GraphStats):
outbound. Control connections are excluded from counts.
"""
- def __init__(self):
- GraphStats.__init__(self)
- self.title = 'Connection Count'
-
- def clone(self, new_copy=None):
- if not new_copy:
- new_copy = ConnStats()
+ def __init__(self, clone = None):
+ GraphStats.__init__(self, clone)
- return GraphStats.clone(self, new_copy)
+ if not clone:
+ self.title = 'Connection Count'
def event_tick(self):
"""
@@ -449,16 +429,14 @@ class ResourceStats(GraphStats):
System resource usage tracker.
"""
- def __init__(self):
+ def __init__(self, clone = None):
GraphStats.__init__(self)
- self.title = 'System Resources'
- self._last_counter = None
-
- def clone(self, new_copy=None):
- if not new_copy:
- new_copy = ResourceStats()
- return GraphStats.clone(self, new_copy)
+ if clone:
+ self._last_counter = clone._last_counter
+ else:
+ self.title = 'System Resources'
+ self._last_counter = None
def primary_header(self, width):
avg = self.primary.total / max(1, self.primary.tick)
@@ -902,8 +880,7 @@ class GraphPanel(panel.Panel):
def copy_attr(self, attr):
if attr == 'stats':
- # uses custom clone method to copy GraphStats instances
- return dict([(key, self.stats[key].clone()) for key in self.stats])
+ return dict([(key, type(self.stats[key])(self.stats[key])) for key in self.stats])
else:
return panel.Panel.copy_attr(self, attr)
1
0

20 Oct '14
commit 0f3a81f0452d09dfdf7e0adc668f14213afb3e42
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sun Oct 19 13:48:13 2014 -0700
Switching stat titles to be an attribute
No need for these to be delegated to a method. All stats behave in the same
way.
---
arm/graph_panel.py | 36 ++++++++++++++----------------------
1 file changed, 14 insertions(+), 22 deletions(-)
diff --git a/arm/graph_panel.py b/arm/graph_panel.py
index fab6603..f76df9a 100644
--- a/arm/graph_panel.py
+++ b/arm/graph_panel.py
@@ -143,6 +143,8 @@ class GraphStats:
# panel to be redrawn when updated (set when added to GraphPanel)
self._graph_panel = None
+ self.title = ''
+ self.title_stats = []
self.is_selected = False
self.is_pause_buffer = False
@@ -164,6 +166,8 @@ class GraphStats:
if not new_copy:
new_copy = GraphStats()
+ new_copy.title = self.title
+ new_copy.title_stats = list(self.title_stats)
new_copy.primary = Stat(self.primary)
new_copy.secondary = Stat(self.secondary)
@@ -191,13 +195,6 @@ class GraphStats:
else:
return False
- def get_title(self, width):
- """
- Provides top label.
- """
-
- return ''
-
def primary_header(self, width):
return ''
@@ -229,12 +226,12 @@ class BandwidthStats(GraphStats):
def __init__(self, is_pause_buffer = False):
GraphStats.__init__(self)
+ self.title = 'Bandwidth'
# listens for tor reload (sighup) events which can reset the bandwidth
# rate/burst
controller = tor_controller()
- self._title_stats = []
if not is_pause_buffer:
self.reset_listener(controller, State.INIT, None) # initializes values
@@ -263,8 +260,6 @@ class BandwidthStats(GraphStats):
if not new_copy:
new_copy = BandwidthStats(True)
- new_copy._title_stats = self._title_stats
-
return GraphStats.clone(self, new_copy)
def reset_listener(self, controller, event_type, _):
@@ -323,10 +318,6 @@ class BandwidthStats(GraphStats):
self._process_event(event.read / 1024.0, event.written / 1024.0)
- def get_title(self, width):
- stats_label = str_tools.join(self._title_stats, ', ', width - 13)
- return 'Bandwidth (%s):' % stats_label if stats_label else 'Bandwidth:'
-
def primary_header(self, width):
stats = ['%-14s' % ('%s/sec' % _size_label(self.primary.latest_value * 1024))]
@@ -400,7 +391,7 @@ class BandwidthStats(GraphStats):
if observed_bw:
stats.append('observed: %s/s' % _size_label(observed_bw))
- self._title_stats = stats
+ self.title_stats = stats
class ConnStats(GraphStats):
@@ -409,6 +400,10 @@ class ConnStats(GraphStats):
outbound. Control connections are excluded from counts.
"""
+ def __init__(self):
+ GraphStats.__init__(self)
+ self.title = 'Connection Count'
+
def clone(self, new_copy=None):
if not new_copy:
new_copy = ConnStats()
@@ -440,9 +435,6 @@ class ConnStats(GraphStats):
self._process_event(inbound_count, outbound_count)
- def get_title(self, width):
- return 'Connection Count:'
-
def primary_header(self, width):
avg = self.primary.total / max(1, self.primary.tick)
return 'Inbound (%s, avg: %s):' % (self.primary.latest_value, avg)
@@ -459,6 +451,7 @@ class ResourceStats(GraphStats):
def __init__(self):
GraphStats.__init__(self)
+ self.title = 'System Resources'
self._last_counter = None
def clone(self, new_copy=None):
@@ -467,9 +460,6 @@ class ResourceStats(GraphStats):
return GraphStats.clone(self, new_copy)
- def get_title(self, width):
- return 'System Resources:'
-
def primary_header(self, width):
avg = self.primary.total / max(1, self.primary.tick)
return 'CPU (%0.1f%%, avg: %0.1f%%):' % (self.primary.latest_value, avg)
@@ -733,7 +723,9 @@ class GraphPanel(panel.Panel):
graph_column = min((width - 10) / 2, CONFIG['features.graph.max_width'])
if self.is_title_visible():
- self.addstr(0, 0, param.get_title(width), curses.A_STANDOUT)
+ title_stats = str_tools.join(param.title_stats, ', ', width - len(param.title) - 4)
+ title = '%s (%s):' % (param.title, title_stats) if title_stats else '%s:' % param.title
+ self.addstr(0, 0, title, curses.A_STANDOUT)
# top labels
1
0

20 Oct '14
commit 3fa9ca7547ec1aac76c4375f2ff217bccd899b00
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sun Oct 19 15:50:42 2014 -0700
Have the graph panel govern its own redrawing
Graph stats informed the graph panel when they were ready to be redrawn. This
was kinda weird because it simply happened on a set schedule (it didn't really
benefit anything). It's simpler if we just do this in the panel itself.
---
arm/graph_panel.py | 38 +++++++++++---------------------------
1 file changed, 11 insertions(+), 27 deletions(-)
diff --git a/arm/graph_panel.py b/arm/graph_panel.py
index 1b3158c..c32cc5f 100644
--- a/arm/graph_panel.py
+++ b/arm/graph_panel.py
@@ -159,8 +159,6 @@ class GraphStats(object):
tor_controller().add_event_listener(self.bandwidth_event, stem.control.EventType.BW)
- self._graph_panel = None
-
def event_tick(self):
"""
Called when it's time to process another event. All graphs use tor BW
@@ -169,19 +167,6 @@ class GraphStats(object):
pass
- def is_next_tick_redraw(self):
- """
- Provides true if the following tick (call to _process_event) will result in
- being redrawn.
- """
-
- if self._graph_panel and self.is_selected and not self._graph_panel.is_paused():
- # use the minimum of the current refresh rate and the panel's
- update_rate = int(CONFIG['attr.graph.intervals'].values()[self._graph_panel.update_interval])
- return (self.primary.tick + 1) % update_rate == 0
- else:
- return False
-
def primary_header(self, width):
return ''
@@ -197,14 +182,9 @@ class GraphStats(object):
Includes new stats in graphs and notifies associated GraphPanel of changes.
"""
- is_redraw = self.is_next_tick_redraw()
-
self.primary.update(primary)
self.secondary.update(secondary)
- if is_redraw and self._graph_panel:
- self._graph_panel.redraw(True)
-
class BandwidthStats(GraphStats):
"""
@@ -485,6 +465,7 @@ class GraphPanel(panel.Panel):
self.graph_height = CONFIG['features.graph.height']
self.current_display = None # label of the stats currently being displayed
self._accounting_stats = None
+ self._last_redraw = 0
self.stats = {
GraphStat.BANDWIDTH: BandwidthStats(),
@@ -494,9 +475,6 @@ class GraphPanel(panel.Panel):
if CONFIG['features.panels.show.connection']:
self.stats[GraphStat.CONNECTIONS] = ConnStats()
- for stat in self.stats.values():
- stat._graph_panel = self
-
self.set_pause_attr('stats')
self.set_pause_attr('_accounting_stats')
@@ -521,7 +499,9 @@ class GraphPanel(panel.Panel):
except ValueError as exc:
log.info(msg('panel.graphing.prepopulation_failure', error = str(exc)))
- tor_controller().add_event_listener(self.bandwidth_event, stem.control.EventType.BW)
+ controller = tor_controller()
+ controller.add_event_listener(self.bandwidth_event, stem.control.EventType.BW)
+ controller.add_status_listener(self.reset_listener)
def bandwidth_event(self, event):
if not CONFIG['features.graph.bw.accounting.show']:
@@ -535,12 +515,14 @@ class GraphPanel(panel.Panel):
arm.controller.get_controller().redraw()
- # redraws to reflect changes (this especially noticeable when we have
- # accounting and shut down since it then gives notice of the shutdown)
+ update_rate = int(CONFIG['attr.graph.intervals'].values()[self.update_interval])
- if self.current_display == GraphStat.BANDWIDTH:
+ if time.time() - self._last_redraw > update_rate:
self.redraw(True)
+ def reset_listener(self, controller, event_type, _):
+ self.redraw(True)
+
def get_update_interval(self):
"""
Provides the rate that we update the graph at.
@@ -697,6 +679,8 @@ class GraphPanel(panel.Panel):
if not self.current_display:
return
+ self._last_redraw = time.time()
+
param = self.get_attr('stats')[self.current_display]
graph_column = min((width - 10) / 2, CONFIG['features.graph.max_width'])
1
0

[arm/master] Internally tracking intervals by name rather than index
by atagar@torproject.org 20 Oct '14
by atagar@torproject.org 20 Oct '14
20 Oct '14
commit 9096e32aa7a9d97f277be745f722b9af6440d37a
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sun Oct 19 16:10:47 2014 -0700
Internally tracking intervals by name rather than index
Our GraphPanel's update_interval was the interval index rather than the
interval itself since we used arrays for this. Now that we're using
dictionaries this is better.
---
arm/graph_panel.py | 37 ++++++++++++++++++-------------------
arm/menu/actions.py | 9 +++------
armrc.sample | 6 +++---
3 files changed, 24 insertions(+), 28 deletions(-)
diff --git a/arm/graph_panel.py b/arm/graph_panel.py
index c32cc5f..d239aa7 100644
--- a/arm/graph_panel.py
+++ b/arm/graph_panel.py
@@ -68,7 +68,7 @@ CONFIG = conf.config_dict('arm', {
'attr.hibernate_color': {},
'attr.graph.intervals': {},
'features.graph.height': 7,
- 'features.graph.interval': 0,
+ 'features.graph.interval': 'each second',
'features.graph.bound': 1,
'features.graph.max_width': 150,
'features.graph.showIntermediateBounds': True,
@@ -458,8 +458,9 @@ class GraphPanel(panel.Panel):
panel.Panel.__init__(self, stdscr, 'graph', 0)
self.update_interval = CONFIG['features.graph.interval']
- if self.update_interval < 0 or self.update_interval > len(CONFIG['attr.graph.intervals']) - 1:
- self.update_interval = 0 # user configured it with a value that's out of bounds
+ if self.update_interval not in CONFIG['attr.graph.intervals']:
+ self.update_interval = 'each second'
+ log.warn("'%s' isn't a valid graphing interval, options are: %s" % (CONFIG['features.graph.interval'], ', '.join(CONFIG['attr.graph.intervals'])))
self.bounds = list(Bounds)[CONFIG['features.graph.bound']]
self.graph_height = CONFIG['features.graph.height']
@@ -495,7 +496,7 @@ class GraphPanel(panel.Panel):
else:
log.notice(msg('panel.graphing.prepopulation_all_successful'))
- self.update_interval = 4
+ self.update_interval = '15 minute'
except ValueError as exc:
log.info(msg('panel.graphing.prepopulation_failure', error = str(exc)))
@@ -515,7 +516,7 @@ class GraphPanel(panel.Panel):
arm.controller.get_controller().redraw()
- update_rate = int(CONFIG['attr.graph.intervals'].values()[self.update_interval])
+ update_rate = int(CONFIG['attr.graph.intervals'][self.update_interval])
if time.time() - self._last_redraw > update_rate:
self.redraw(True)
@@ -658,10 +659,10 @@ class GraphPanel(panel.Panel):
# provides menu to pick graph panel update interval
options = CONFIG['attr.graph.intervals'].keys()
- selection = arm.popups.show_menu('Update Interval:', options, self.update_interval)
+ selection = arm.popups.show_menu('Update Interval:', options, CONFIG['attr.graph.intervals'].keys().index(self.update_interval))
if selection != -1:
- self.update_interval = selection
+ self.update_interval = CONFIG['attr.graph.intervals'].keys()[selection]
else:
return False
@@ -672,7 +673,7 @@ class GraphPanel(panel.Panel):
('r', 'resize graph', None),
('s', 'graphed stats', self.current_display if self.current_display else 'none'),
('b', 'graph bounds', self.bounds.lower()),
- ('i', 'graph update interval', CONFIG['attr.graph.intervals'].keys()[self.update_interval]),
+ ('i', 'graph update interval', self.update_interval),
]
def draw(self, width, height):
@@ -701,25 +702,23 @@ class GraphPanel(panel.Panel):
# determines max/min value on the graph
- interval = CONFIG['attr.graph.intervals'].keys()[self.update_interval]
-
if self.bounds == Bounds.GLOBAL_MAX:
- primary_max_bound = param.primary.max_value[interval]
- secondary_max_bound = param.secondary.max_value[interval]
+ primary_max_bound = param.primary.max_value[self.update_interval]
+ secondary_max_bound = param.secondary.max_value[self.update_interval]
else:
# both Bounds.LOCAL_MAX and Bounds.TIGHT use local maxima
if graph_column < 2:
# nothing being displayed
primary_max_bound, secondary_max_bound = 0, 0
else:
- primary_max_bound = max(param.primary.values[interval][:graph_column])
- secondary_max_bound = max(param.secondary.values[interval][:graph_column])
+ primary_max_bound = max(param.primary.values[self.update_interval][:graph_column])
+ secondary_max_bound = max(param.secondary.values[self.update_interval][:graph_column])
primary_min_bound = secondary_min_bound = 0
if self.bounds == Bounds.TIGHT:
- primary_min_bound = min(param.primary.values[interval][:graph_column])
- secondary_min_bound = min(param.secondary.values[interval][:graph_column])
+ primary_min_bound = min(param.primary.values[self.update_interval][:graph_column])
+ secondary_min_bound = min(param.secondary.values[self.update_interval][:graph_column])
# if the max = min (ie, all values are the same) then use zero lower
# bound so a graph is still displayed
@@ -764,13 +763,13 @@ class GraphPanel(panel.Panel):
# creates bar graph (both primary and secondary)
for col in range(graph_column):
- column_count = int(param.primary.values[interval][col]) - primary_min_bound
+ column_count = int(param.primary.values[self.update_interval][col]) - primary_min_bound
column_height = int(min(self.graph_height, self.graph_height * column_count / (max(1, primary_max_bound) - primary_min_bound)))
for row in range(column_height):
self.addstr(self.graph_height + 1 - row, col + 5, ' ', curses.A_STANDOUT, PRIMARY_COLOR)
- column_count = int(param.secondary.values[interval][col]) - secondary_min_bound
+ column_count = int(param.secondary.values[self.update_interval][col]) - secondary_min_bound
column_height = int(min(self.graph_height, self.graph_height * column_count / (max(1, secondary_max_bound) - secondary_min_bound)))
for row in range(column_height):
@@ -778,7 +777,7 @@ class GraphPanel(panel.Panel):
# bottom labeling of x-axis
- interval_sec = int(CONFIG['attr.graph.intervals'].values()[self.update_interval]) # seconds per labeling
+ interval_sec = int(CONFIG['attr.graph.intervals'][self.update_interval]) # seconds per labeling
interval_spacing = 10 if graph_column >= WIDE_LABELING_GRAPH_COL else 5
units_label, decimal_precision = None, 0
diff --git a/arm/menu/actions.py b/arm/menu/actions.py
index d4323b3..28e4e16 100644
--- a/arm/menu/actions.py
+++ b/arm/menu/actions.py
@@ -168,12 +168,9 @@ def make_graph_menu(graph_panel):
interval_menu = arm.menu.item.Submenu("Interval")
interval_group = arm.menu.item.SelectionGroup(graph_panel.set_update_interval, graph_panel.get_update_interval())
- graph_intervals = CONFIG['attr.graph.intervals']
-
- for i in range(len(graph_intervals)):
- label = graph_intervals.keys()[i]
- label = str_tools._to_camel_case(label, divider = " ")
- interval_menu.add(arm.menu.item.SelectionMenuItem(label, interval_group, i))
+ for interval in CONFIG['attr.graph.intervals']:
+ label = str_tools._to_camel_case(interval, divider = " ")
+ interval_menu.add(arm.menu.item.SelectionMenuItem(label, interval_group, interval))
graph_menu.add(interval_menu)
diff --git a/armrc.sample b/armrc.sample
index 33a611d..40025be 100644
--- a/armrc.sample
+++ b/armrc.sample
@@ -153,8 +153,8 @@ features.config.descriptions.persist true
# maxWidth
# maximum number of graphed entries
# interval
-# 0 -> each second, 1 -> 5 seconds, 2 -> 30 seconds, 3 -> minutely,
-# 4 -> 15 minutes, 5 -> half hour, 6 -> hourly, 7 -> daily
+# each second, 5 seconds, 30 seconds, minutely,
+# 15 minute, 30 minute, hourly, daily
# bound
# 0 -> global maxima, 1 -> local maxima, 2 -> tight
# type
@@ -164,7 +164,7 @@ features.config.descriptions.persist true
features.graph.height 7
features.graph.maxWidth 150
-features.graph.interval 0
+features.graph.interval each second
features.graph.bound 1
features.graph.type 1
features.graph.showIntermediateBounds true
1
0

20 Oct '14
commit e24f816d511b66071c0dea9467f52bb696b1c04f
Author: Roger Dingledine <arma(a)torproject.org>
Date: Sun Oct 19 20:34:54 2014 -0400
remove a couple of distracting characters
---
docs/en/running-a-mirror.wml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/en/running-a-mirror.wml b/docs/en/running-a-mirror.wml
index ad8762c..c6cb06b 100644
--- a/docs/en/running-a-mirror.wml
+++ b/docs/en/running-a-mirror.wml
@@ -26,7 +26,7 @@
</p>
<tt>
<pre>
-rsync -av --exclude 'dist' --delete rsync://rsync.torproject.org/website-mirror tor-mirror/
+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/
</pre>
</tt>
@@ -58,7 +58,7 @@ rsync -av --delete rsync://rsync.torproject.org/dist-mirror tor-mirror/dist/
<tt>
<pre>
# m h dom mon dow command
-0 */6 * * * rsync -aq --exclude 'dist' --delete rsync://rsync.torproject.org/website-mirror/ /var/www/mirrors/torproject.org
+0 */6 * * * rsync -aq --exclude dist --delete rsync://rsync.torproject.org/website-mirror/ /var/www/mirrors/torproject.org
5 */6 * * * rsync -aq --delete rsync://rsync.torproject.org/dist-mirror/ /var/www/mirrors/torproject.org/dist
</pre>
</tt>
@@ -132,8 +132,8 @@ text/html en html htm shtml;
file</a> to the mirrors list. Your mirror will then be added manually
if it passes availability testing and your provided information is
confirmed. Some general pointers on mirrors are:
- <ol><li> Try not run your mirror behind a content delivery network
- (such as Akamai, Cloudflare, Fastly, etc), as most of them block
+ <ol><li> Try not to run your mirror behind a content delivery network
+ (such as Akamai, Cloudflare, Fastly, etc) as most of them block
access from countries where the mirror is needed the most.</li>
<li> Try not to redirect http to https. Many places in the world
cannot use https due to local or national firewalls.</li>
1
0
commit 87ab12b73b2f27519aaebcfafa3646bf70432925
Author: Roger Dingledine <arma(a)torproject.org>
Date: Sun Oct 19 20:34:18 2014 -0400
update readme to know about git
---
README | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/README b/README
index 0c93dfc..2d66da2 100644
--- a/README
+++ b/README
@@ -1,13 +1,13 @@
Here are the instructions I sent David Fifield when he asked about
editing the website. I hope they are useful for you too! --Roger
-See the Makefile.local file in your website/trunk/ directory. Uncomment
-TORGIT and point it to a tor git.
+Copy Makefile.local.sample to Makefile.local in your webwml/ directory.
+Point TORGIT to a tor git.
Then apt-get install wml and (alas) probably a shocking number of other
debs. Then you can type 'make' and it will build the website for you
locally. It's probably a smart move to see whether 'make' works before
-you svn commit any changes to the wml file.
+you git commit any changes to the wml files.
You can edit docs/en/pluggable-transports.wml (and that is
the right source file to edit, not the html). But go take a
@@ -21,14 +21,14 @@ too -- generally when you change the file name so drastically that just
changing the versions.wmi tags isn't enough.)
Pushes to the master branch of the git repository will cause the
-website to get re-built and published. pushing to the staging branch
+website to get re-built and published. Pushing to the staging branch
will update www-staging.torproject.org.
Alas, https://www.torproject.org/dist/ isn't in version control. You
-write to it by ssh'ing to staticiforme.torproject.org and going to
+write to it by ssh'ing to dist-master.torproject.org and going to
/srv/dist-master.torproject.org/htdocs/ and then sticking your stuff
there. When you want it to go live, you run
-static-update-component dist.torproject.org on staticiforme.
+"static-update-component dist.torproject.org" on dist-master.
Weasel has hopes that somebody will write some scripts to make maintaining
packages in dist/ less awful -- automatically check that they have
1
0