[tor-commits] r26453: {website} update the script some more, do a trial run and update of th (in website/trunk: . include)

Andrew Lewman andrew at torproject.org
Thu Dec 5 17:11:12 UTC 2013


Author: phobos
Date: 2013-12-05 17:11:12 +0000 (Thu, 05 Dec 2013)
New Revision: 26453

Added:
   website/trunk/include/tor-mirrors.csv
Modified:
   website/trunk/include/mirrors-table.wmi
   website/trunk/update-mirrors.pl
Log:
update the script some more, do a trial run and update of the live mirrors-table.


Modified: website/trunk/include/mirrors-table.wmi
===================================================================
--- website/trunk/include/mirrors-table.wmi	2013-12-05 08:13:08 UTC (rev 26452)
+++ website/trunk/include/mirrors-table.wmi	2013-12-05 17:11:12 UTC (rev 26453)
@@ -1,15 +1,15 @@
      
 <tr>
 
-         <td>CZ</td>
+         <td>US</td>
 
-         <td>Lightning-bolt.net</td>
+         <td></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><a href="http://mirror.nametoday.me/tor/dist/">http</a></td>
+    <td><a href="http://mirror.nametoday.me/tor/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -18,15 +18,32 @@
      
 <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>NL</td>
 
-         <td>CCC</td>
+         <td>BBLN</td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://tor.ccc.de/dist/">http</a></td>
-    <td><a href="http://tor.ccc.de/">http</a></td>
+    <td><a href="http://t02.nl/mirror/dist/">http</a></td>
+    <td><a href="http://t02.nl/mirror/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -35,15 +52,15 @@
      
 <tr>
 
-         <td>DK</td>
+         <td>US</td>
 
-         <td>Zentrum der Gesundheit</td>
+         <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://tor.idnr.ws/dist/">http</a></td>
-    <td><a href="http://tor.idnr.ws/">http</a></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>
@@ -69,15 +86,15 @@
      
 <tr>
 
-         <td>ES</td>
+         <td>IS</td>
 
-         <td></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://torproject.is/dist/">http</a></td>
+    <td><a href="http://torproject.is/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -86,6 +103,23 @@
      
 <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>
@@ -105,81 +139,81 @@
 
          <td>DE</td>
 
-         <td></td>
+         <td>borgmann.tv</td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://torproject.cryptowars.info/dist/">http</a></td>
-    <td><a href="http://torproject.cryptowars.info/">http</a></td>
-    <td><a href="https://torproject.cryptowars.info/dist/">https</a></td>
-    <td><a href="https://torproject.cryptowars.info/">https</a></td>
+    <td><a href="http://tor.borgmann.tv/dist/">http</a></td>
+    <td><a href="http://tor.borgmann.tv/">http</a></td>
     <td> - </td>
-    <td><a href="rsync://torproject.cryptowars.info/">rsync</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>FR</td>
+         <td>HU</td>
 
-         <td>linsrv</td>
+         <td>Unknown</td>
 
          <td>Up to date</td>
 
-    <td><a href="ftp://ftp.linsrv.net/pub/torproject/">ftp</a></td>
-    <td><a href="http://mirrors.linsrv.net/torproject/dist/">http</a></td>
-    <td><a href="http://mirrors.linsrv.net/torproject/">http</a></td>
     <td> - </td>
+    <td><a href="http://mirror.tor.hu/dist/">http</a></td>
+    <td><a href="http://mirror.tor.hu/">http</a></td>
     <td> - </td>
-    <td><a href="mirrors.linsrv.net::pub/torproject/dist">rsync</a></td>
-    <td><a href="mirrors.linsrv.net::pub/torproject">rsync</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>DE</td>
+         <td>NL</td>
 
-         <td></td>
+         <td>CCC</td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://tor.dev-random.de/dist/">http</a></td>
-    <td><a href="http://tor.dev-random.de/">http</a></td>
-    <td><a href="https://tor.dev-random.de/dist/">https</a></td>
-    <td><a href="https://tor.dev-random.de/">https</a></td>
+    <td><a href="http://tor.ccc.de/dist/">http</a></td>
+    <td><a href="http://tor.ccc.de/">http</a></td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
          <td>AT</td>
 
-         <td>cyberarmy</td>
+         <td></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> - </td>
-    <td><a href="http://tor.cyberarmy.at/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
-    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>NO</td>
+         <td>INT</td>
 
-         <td>MultiNet AS</td>
+         <td>CoralCDN</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><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>
@@ -188,15 +222,15 @@
      
 <tr>
 
-         <td>FR</td>
+         <td>US</td>
 
          <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://torproject.c3l.lu/dist/">http</a></td>
-    <td><a href="http://torproject.c3l.lu/">http</a></td>
+    <td><a href="http://mirror.nametoday.me/tor/dist/">http</a></td>
+    <td><a href="http://mirror.nametoday.me/tor/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -205,15 +239,15 @@
      
 <tr>
 
-         <td>DE</td>
+         <td>AT</td>
 
-         <td>chaos darmstadt</td>
+         <td></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><a href="http://torproject.ph3x.at/dist/">http</a></td>
+    <td><a href="http://torproject.ph3x.at/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -239,36 +273,53 @@
      
 <tr>
 
-         <td>US</td>
+         <td>CH</td>
 
-         <td>HackThisSite.org</td>
+         <td></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><a href="http://torproject.pillo-srv.ch/dist/">http</a></td>
+    <td><a href="http://torproject.pillo-srv.ch/">http</a></td>
+    <td><a href="https://torproject.pillo-srv.ch/dist/">https</a></td>
+    <td><a href="https://torproject.pillo-srv.ch/">https</a></td>
     <td> - </td>
     <td> - </td>
 </tr>
      
 <tr>
 
-         <td>US</td>
+         <td>BE</td>
 
-         <td></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:8082/dist/">http</a></td>
+    <td><a href="http://tor.teambelgium.net:8082/">http</a></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>
+</tr>
+     
+<tr>
+
+         <td>US</td>
+
+         <td>Xpdm</td>
+
+         <td>Up to date</td>
+
     <td> - </td>
+    <td><a href="http://torproj.xpdm.us/dist/">http</a></td>
+    <td><a href="http://torproj.xpdm.us/">http</a></td>
+    <td><a href="https://torproj.xpdm.us/dist/">https</a></td>
+    <td><a href="https://torproj.xpdm.us/">https</a></td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
@@ -290,49 +341,49 @@
      
 <tr>
 
-         <td>US</td>
+         <td>DE</td>
 
          <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://torproject.guilhem.org/dist/">http</a></td>
-    <td><a href="http://torproject.guilhem.org/">http</a></td>
-    <td><a href="https://torproject.guilhem.org/dist/">https</a></td>
-    <td><a href="https://torproject.guilhem.org/">https</a></td>
+    <td><a href="http://tormirror.almnet.de/dist/">http</a></td>
+    <td><a href="http://tormirror.almnet.de/">http</a></td>
+    <td><a href="https://tormirror.almnet.de/dist/">https</a></td>
+    <td><a href="https://tormirror.almnet.de/">https</a></td>
     <td> - </td>
     <td> - </td>
 </tr>
      
 <tr>
 
-         <td>RU</td>
+         <td>LT</td>
 
-         <td>Soviet Anonymous</td>
+         <td></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>
+    <td> - </td>
+    <td><a href="http://tor.vesta.nu/dist/">http</a></td>
+    <td><a href="http://tor.vesta.nu/">http</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
          <td>US</td>
 
-         <td></td>
+         <td>AskApache</td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://mirror.nametoday.me/tor/dist/">http</a></td>
-    <td><a href="http://mirror.nametoday.me/tor/">http</a></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> - </td>
@@ -341,19 +392,19 @@
      
 <tr>
 
-         <td>DE</td>
+         <td>US</td>
 
-         <td>spline</td>
+         <td>hessmo</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>
+    <td> - </td>
+    <td><a href="http://mirror.hessmo.com/tor/dist/">http</a></td>
+    <td><a href="http://mirror.hessmo.com/tor/">http</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
@@ -365,29 +416,46 @@
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://tormirror.almnet.de/dist/">http</a></td>
-    <td><a href="http://tormirror.almnet.de/">http</a></td>
-    <td><a href="https://tormirror.almnet.de/dist/">https</a></td>
-    <td><a href="https://tormirror.almnet.de/">https</a></td>
+    <td><a href="http://tor.dev-random.de/dist/">http</a></td>
+    <td><a href="http://tor.dev-random.de/">http</a></td>
+    <td><a href="https://tor.dev-random.de/dist/">https</a></td>
+    <td><a href="https://tor.dev-random.de/">https</a></td>
     <td> - </td>
     <td> - </td>
 </tr>
      
 <tr>
 
-         <td>INT</td>
+         <td>FR</td>
 
-         <td>CoralCDN</td>
+         <td>linsrv</td>
 
          <td>Up to date</td>
 
+    <td><a href="ftp://ftp.linsrv.net/pub/torproject/">ftp</a></td>
+    <td><a href="http://mirrors.linsrv.net/torproject/dist/">http</a></td>
+    <td><a href="http://mirrors.linsrv.net/torproject/">http</a></td>
     <td> - </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><a href="mirrors.linsrv.net::pub/torproject/dist">rsync</a></td>
+    <td><a href="mirrors.linsrv.net::pub/torproject">rsync</a></td>
+</tr>
+     
+<tr>
+
+         <td>FR</td>
+
+         <td></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> - </td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
@@ -409,74 +477,210 @@
      
 <tr>
 
-         <td>BE</td>
+         <td>FR</td>
 
-         <td>teambelgium</td>
+         <td>BarkerJr</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:8082/dist/">http</a></td>
-    <td><a href="http://tor.teambelgium.net:8082/">http</a></td>
     <td> - </td>
+    <td><a href="http://www.oignon.net/dist/">http</a></td>
+    <td><a href="http://www.oignon.net/">http</a></td>
+    <td><a href="https://www.oignon.net/dist/">https</a></td>
+    <td><a href="https://www.oignon.net/">https</a></td>
     <td> - </td>
     <td> - </td>
+</tr>
+     
+<tr>
+
+         <td>US</td>
+
+         <td>HackThisSite.org</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> - </td>
 </tr>
      
 <tr>
 
-         <td>IS</td>
+         <td>DE</td>
 
-         <td>torproject.is</td>
+         <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://torproject.is/dist/">http</a></td>
-    <td><a href="http://torproject.is/">http</a></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>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>AT</td>
 
+         <td>cyberarmy</td>
+
+         <td>Up to date</td>
+
+    <td> - </td>
+    <td> - </td>
+    <td><a href="http://tor.cyberarmy.at/">http</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+</tr>
+     
+<tr>
+
+         <td>DE</td>
+
          <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://torproject.ph3x.at/dist/">http</a></td>
-    <td><a href="http://torproject.ph3x.at/">http</a></td>
+    <td><a href="http://torproject.cryptowars.info/dist/">http</a></td>
+    <td><a href="http://torproject.cryptowars.info/">http</a></td>
+    <td><a href="https://torproject.cryptowars.info/dist/">https</a></td>
+    <td><a href="https://torproject.cryptowars.info/">https</a></td>
     <td> - </td>
+    <td><a href="rsync://torproject.cryptowars.info/">rsync</a></td>
+</tr>
+     
+<tr>
+
+         <td>IS</td>
+
+         <td>TheOnionRouter</td>
+
+         <td>Up to date</td>
+
     <td> - </td>
+    <td><a href="http://theonionrouter.com/dist/">http</a></td>
+    <td><a href="http://theonionrouter.com/">http</a></td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>AT</td>
+         <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>
+     
+<tr>
+
+         <td>US</td>
+
          <td></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://torproject.guilhem.org/dist/">http</a></td>
+    <td><a href="http://torproject.guilhem.org/">http</a></td>
+    <td><a href="https://torproject.guilhem.org/dist/">https</a></td>
+    <td><a href="https://torproject.guilhem.org/">https</a></td>
     <td> - </td>
     <td> - </td>
+</tr>
+     
+<tr>
+
+         <td>DE</td>
+
+         <td>chaos darmstadt</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> - </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>US</td>
+
+         <td></td>
+
+         <td>Up to date</td>
+
+    <td><a href="ftp://mirrors.go-parts.com/tor/">ftp</a></td>
+    <td><a href="http://mirrors.go-parts.com/tor/dist/">http</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+    <td><a href="rsync://mirrors.go-parts.com/mirrors/tor/">rsync</a></td>
+    <td> - </td>
+</tr>
+     
+<tr>
+
          <td>DE</td>
 
          <td>torservers</td>
@@ -494,32 +698,32 @@
      
 <tr>
 
-         <td>IS</td>
+         <td>GB</td>
 
-         <td>myRL.net</td>
+         <td>torland</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><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> - </td>
     <td> - </td>
 </tr>
      
 <tr>
 
-         <td>US</td>
+         <td>FR</td>
 
-         <td>hessmo</td>
+         <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://mirror.hessmo.com/tor/dist/">http</a></td>
-    <td><a href="http://mirror.hessmo.com/tor/">http</a></td>
+    <td><a href="http://torproject.c3l.lu/dist/">http</a></td>
+    <td><a href="http://torproject.c3l.lu/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -528,66 +732,66 @@
      
 <tr>
 
-         <td>DE</td>
+         <td>CZ</td>
 
-         <td></td>
+         <td>Lightning-bolt.net</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><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> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>DE</td>
+         <td>IS</td>
 
-         <td>crazyhaze.de</td>
+         <td>myRL.net</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="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>MX</td>
+         <td>NL</td>
 
-         <td></td>
+         <td>Amorphis</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><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> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>NL</td>
+         <td>DK</td>
 
-         <td>BBLN</td>
+         <td>Zentrum der Gesundheit</td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://t02.nl/mirror/dist/">http</a></td>
-    <td><a href="http://t02.nl/mirror/">http</a></td>
+    <td><a href="http://tor.idnr.ws/dist/">http</a></td>
+    <td><a href="http://tor.idnr.ws/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -596,49 +800,49 @@
      
 <tr>
 
-         <td>CH</td>
+         <td>ES</td>
 
          <td></td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://torproject.pillo-srv.ch/dist/">http</a></td>
-    <td><a href="http://torproject.pillo-srv.ch/">http</a></td>
-    <td><a href="https://torproject.pillo-srv.ch/dist/">https</a></td>
-    <td><a href="https://torproject.pillo-srv.ch/">https</a></td>
+    <td><a href="http://tor.zilog.es/dist/">http</a></td>
+    <td><a href="http://tor.zilog.es/">http</a></td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>FR</td>
+         <td>SE</td>
 
-         <td>BarkerJr</td>
+         <td>homosu</td>
 
          <td>Up to date</td>
 
     <td> - </td>
-    <td><a href="http://www.oignon.net/dist/">http</a></td>
-    <td><a href="http://www.oignon.net/">http</a></td>
-    <td><a href="https://www.oignon.net/dist/">https</a></td>
-    <td><a href="https://www.oignon.net/">https</a></td>
+    <td><a href="http://tor.homosu.net/dist/">http</a></td>
+    <td><a href="http://tor.homosu.net/">http</a></td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>AU</td>
+         <td>IN</td>
 
-         <td>CoffsWiFi</td>
+         <td>India Tor Fans</td>
 
-         <td>Up to date</td>
+         <td>DO NOT USE. Out of 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><a href="http://www.torproject.org.in/dist/">http</a></td>
+    <td><a href="http://www.torproject.org.in/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -647,49 +851,83 @@
      
 <tr>
 
-         <td>FR</td>
+         <td>TN</td>
 
          <td></td>
 
-         <td>Up to date</td>
+         <td>DO NOT USE. Out of 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> - </td>
+    <td><a href="http://torproject.antagonism.org/">http</a></td>
     <td> - </td>
+    <td><a href="https://torproject.antagonism.org/">https</a></td>
     <td> - </td>
     <td> - </td>
 </tr>
      
 <tr>
 
-         <td>HU</td>
+         <td>US</td>
 
+         <td></td>
+
          <td>Unknown</td>
 
-         <td>Up to date</td>
+    <td> - </td>
+    <td><a href="http://tor.loritsu.com/dist/">http</a></td>
+    <td><a href="http://tor.loritsu.com/">http</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
+</tr>
+     
+<tr>
 
+         <td>US</td>
+
+         <td></td>
+
+         <td>Unknown</td>
+
     <td> - </td>
-    <td><a href="http://mirror.tor.hu/dist/">http</a></td>
-    <td><a href="http://mirror.tor.hu/">http</a></td>
+    <td><a href="http://tor.mirrors.whitedholdings.org/dist/">http</a></td>
+    <td><a href="http://tor.mirrors.whitedholdings.org/">http</a></td>
+    <td><a href="https://tor.mirrors.whitedholdings.org/dist/">https</a></td>
+    <td><a href="https://tor.mirrors.whitedholdings.org/">https</a></td>
+    <td><a href="rsync://tor.mirrors.whitedholdings.org/tor-dist">rsync</a></td>
+    <td><a href="rsync://mirrors.whitedholdings.org/tor">rsync</a></td>
+</tr>
+     
+<tr>
+
+         <td>US</td>
+
+         <td>searchprivate</td>
+
+         <td>DO NOT USE. Out of date.</td>
+
     <td> - </td>
+    <td><a href="http://tor.searchprivate.com/dist/">http</a></td>
+    <td><a href="http://tor.searchprivate.com/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
          <td>DE</td>
 
-         <td>borgmann.tv</td>
+         <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</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.taskserver.de/dist/">http</a></td>
+    <td><a href="http://tor.taskserver.de/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -698,49 +936,49 @@
      
 <tr>
 
-         <td>US</td>
+         <td>LU</td>
 
-         <td>Xpdm</td>
+         <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</td>
 
     <td> - </td>
-    <td><a href="http://torproj.xpdm.us/dist/">http</a></td>
-    <td><a href="http://torproj.xpdm.us/">http</a></td>
-    <td><a href="https://torproj.xpdm.us/dist/">https</a></td>
-    <td><a href="https://torproj.xpdm.us/">https</a></td>
+    <td><a href="http://torproject.adamas.ai/dist/">http</a></td>
+    <td><a href="http://torproject.adamas.ai/">http</a></td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>GB</td>
+         <td>DE</td>
 
-         <td>torland</td>
+         <td>Netzkonstrukt Berlin</td>
 
-         <td>Up to date</td>
+         <td>DO NOT USE. Out of 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="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>UA</td>
 
-         <td>TheOnionRouter</td>
+         <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</td>
 
     <td> - </td>
-    <td><a href="http://theonionrouter.com/dist/">http</a></td>
-    <td><a href="http://theonionrouter.com/">http</a></td>
+    <td><a href="http://torua.reactor-xg.kiev.ua/dist/">http</a></td>
+    <td><a href="http://torua.reactor-xg.kiev.ua/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -749,19 +987,36 @@
      
 <tr>
 
-         <td>SE</td>
+         <td>MX</td>
 
-         <td>homosu</td>
+         <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</td>
 
     <td> - </td>
-    <td><a href="http://tor.homosu.net/dist/">http</a></td>
-    <td><a href="http://tor.homosu.net/">http</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>
+     
+<tr>
+
+         <td>FR</td>
+
+         <td></td>
+
+         <td>Unknown</td>
+
     <td> - </td>
+    <td><a href="http://37.187.0.127/tormirror/dist/">http</a></td>
+    <td><a href="http://37.187.0.127/tormirror/">http</a></td>
     <td> - </td>
+    <td> - </td>
+    <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
@@ -770,11 +1025,11 @@
 
          <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</td>
 
     <td> - </td>
-    <td><a href="http://mirror.nametoday.me/tor/dist/">http</a></td>
-    <td><a href="http://mirror.nametoday.me/tor/">http</a></td>
+    <td><a href="http://tor.minibofh.org/dist/">http</a></td>
+    <td><a href="http://tor.minibofh.org/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -783,15 +1038,15 @@
      
 <tr>
 
-         <td>LT</td>
+         <td>UK</td>
 
          <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</td>
 
     <td> - </td>
-    <td><a href="http://tor.vesta.nu/dist/">http</a></td>
-    <td><a href="http://tor.vesta.nu/">http</a></td>
+    <td><a href="http://tor.mage.me.uk/dist/">http</a></td>
+    <td><a href="http://tor.mage.me.uk/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
@@ -800,51 +1055,119 @@
      
 <tr>
 
+         <td>DE</td>
+
+         <td>tor-mirror.de</td>
+
+         <td>Unknown</td>
+
+    <td> - </td>
+    <td><a href="http://tor-mirror.de/dist/">http</a></td>
+    <td><a href="http://tor-mirror.de/">http</a></td>
+    <td><a href="https://tor-mirror.de/dist/">https</a></td>
+    <td><a href="https://tor-mirror.de/">https</a></td>
+    <td> - </td>
+    <td> - </td>
+</tr>
+     
+<tr>
+
+         <td>DE</td>
+
+         <td>[[:bbs:]]</td>
+
+         <td>Unknown</td>
+
+    <td> - </td>
+    <td><a href="http://tor.blingblingsquad.net/dist/">http</a></td>
+    <td><a href="http://tor.blingblingsquad.net/">http</a></td>
+    <td><a href="https://tor.blingblingsquad.net/dist/">https</a></td>
+    <td><a href="https://tor.blingblingsquad.net/">https</a></td>
+    <td> - </td>
+    <td> - </td>
+</tr>
+     
+<tr>
+
          <td>US</td>
 
-         <td>AskApache</td>
+         <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</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><a href="http://www.netgull.com/torproject/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
+         <td>US</td>
+
+         <td>NW Linux</td>
+
+         <td>Unknown</td>
+
+    <td> - </td>
+    <td><a href="http://torproject.nwlinux.us/dist/">http</a></td>
+    <td><a href="http://torproject.nwlinux.us/">http</a></td>
+    <td> - </td>
+    <td> - </td>
+    <td><a href="rsync://nwlinux.us/tor-dist">rsync</a></td>
+    <td><a href="rsync://nwlinux.us/tor-web">rsync</a></td>
+</tr>
+     
+<tr>
+
          <td>NL</td>
 
-         <td>Amorphis</td>
+         <td></td>
 
-         <td>Up to date</td>
+         <td>Unknown</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="https://www.coevoet.nl/tor/dist/">https</a></td>
     <td> - </td>
     <td> - </td>
+    <td> - </td>
 </tr>
      
 <tr>
 
-         <td>IN</td>
+         <td>FR</td>
 
-         <td>India Tor Fans</td>
+         <td>LazyTiger</td>
 
-         <td>DO NOT USE. Out of date.</td>
+         <td>Unknown</td>
 
     <td> - </td>
-    <td><a href="http://www.torproject.org.in/dist/">http</a></td>
-    <td><a href="http://www.torproject.org.in/">http</a></td>
+    <td><a href="http://tor.taiga-san.net/dist/">http</a></td>
+    <td><a href="http://tor.taiga-san.net/">http</a></td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
     <td> - </td>
 </tr>
+     
+<tr>
+
+         <td>EE</td>
+
+         <td></td>
+
+         <td>Unknown</td>
+
+    <td> - </td>
+    <td><a href="http://tor.li/dist/">http</a></td>
+    <td><a href="http://tor.li/">http</a></td>
+    <td><a href="https://tor.li/dist/">https</a></td>
+    <td><a href="https://tor.li/">https</a></td>
+    <td> - </td>
+    <td> - </td>
+</tr>

Added: website/trunk/include/tor-mirrors.csv
===================================================================
--- website/trunk/include/tor-mirrors.csv	                        (rev 0)
+++ website/trunk/include/tor-mirrors.csv	2013-12-05 17:11:12 UTC (rev 26453)
@@ -0,0 +1,70 @@
+adminContact, orgName, isoCC, subRegion, region, ipv4, ipv6, loadBalanced, httpWebsiteMirror, httpsWebsiteMirror, rsyncWebsiteMirror, ftpWebsiteMirror, httpDistMirror, httpsDistMirror, rsyncDistMirror, hiddenServiceMirror, updateDate
+, , US, , US, True, False, No, http://mirror.nametoday.me/tor/, , , , http://mirror.nametoday.me/tor/dist/, , , , Thu Dec  5 03:59:24 2013
+, , US, , US, True, True, No, http://tor.loritsu.com/, , , , http://tor.loritsu.com/dist/, , , , 
+info AT zentrum-der-gesundheit DOT de, Zentrum der Gesundheit, DK, , Europe, True, False, Unknown, http://tor.idnr.ws/, , , , http://tor.idnr.ws/dist/, , , , Wed Dec  4 07:16:29 2013
+http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, True, True, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Thu Dec  5 03:59:24 2013
+, , US, , US, True, False, No, http://tor.mirrors.whitedholdings.org/, https://tor.mirrors.whitedholdings.org/, rsync://mirrors.whitedholdings.org/tor, , http://tor.mirrors.whitedholdings.org/dist/, https://tor.mirrors.whitedholdings.org/dist/, rsync://tor.mirrors.whitedholdings.org/tor-dist, , 
+haskell at gmx.es, , ES, Spain, Europe, True, False, No, http://tor.zilog.es/, , , , http://tor.zilog.es/dist/, , , , Wed Dec  4 07:16:29 2013
+webmaster AT bbln DOT nl, BBLN, NL, The Netherlands, Europe, True, True, No, http://t02.nl/mirror/, , , , http://t02.nl/mirror/dist/, , , , Thu Dec  5 03:59:24 2013
+, , US, , US, True, False, No, http://199.175.55.215/, , , , http://199.175.55.215/dist/, , , , Thu Dec  5 03:59:24 2013
+margus.random at mail.ee, CyberSIDE, EE, , EE, True, False, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Thu Dec  5 03:59:24 2013
+, torproject.is, IS, , IS, True, False, No, http://torproject.is/, , , , http://torproject.is/dist/, , , , Thu Dec  5 03:59:24 2013
+, spline, DE, , 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 Dec  5 03:59:24 2013
+, me0w.cc, RO, , RO, True, False, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Thu Dec  5 03:59:24 2013
+, borgmann.tv, DE, , DE, True, False, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Thu Dec  5 03:59:24 2013
+security AT hostoffice DOT hu, Unknown, HU, Hungary, Europe, True, False, No, http://mirror.tor.hu/, , , , http://mirror.tor.hu/dist/, , , , Thu Dec  5 03:59:24 2013
+, , TN, , TN, True, False, No, http://torproject.antagonism.org/, https://torproject.antagonism.org/, , , , , , , Fri Jun 21 10:33:04 2013
+webmaster AT ccc DOT de, CCC, NL, , Europe, True, False, Unknown, http://tor.ccc.de/, , , , http://tor.ccc.de/dist/, , , , Thu Dec  5 03:59:24 2013
+, searchprivate, US, TX, US, True, False, No, http://tor.searchprivate.com/, , , , http://tor.searchprivate.com/dist/, , , , Sun Jul 29 23:49:26 2012
+, , AT, , AT, True, True, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Thu Dec  5 03:59:24 2013
+marz.michael at gmail.com, , DE, , , True, False, No, http://tor.taskserver.de/, , , , http://tor.taskserver.de/dist/, , , , 
+, , LU, , LU, True, False, No, http://torproject.adamas.ai/, , , , http://torproject.adamas.ai/dist/, , , , 
+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 Dec  1 03:54:10 2013
+coralcdn.org, CoralCDN, INT, , INT, True, False, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , 
+, , US, , US, True, True, No, http://mirror.nametoday.me/tor/, , , , http://mirror.nametoday.me/tor/dist/, , , , Thu Dec  5 03:59:24 2013
+, , AT, , AT, True, False, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Thu Dec  5 03:59:24 2013
+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 Dec  5 03:59:24 2013
+, , CH, , CH, True, False, No, http://torproject.pillo-srv.ch/, https://torproject.pillo-srv.ch/, , , http://torproject.pillo-srv.ch/dist/, https://torproject.pillo-srv.ch/dist/, , , Thu Dec  5 03:59:24 2013
+neutrino8 AT gmail DOT com, teambelgium, BE, Belgium, Europe, True, False, No, http://tor.teambelgium.net:8082/, , , ftp://tor.teambelgium.net:2121/torproject/, http://tor.teambelgium.net:8082/dist/, , , , Thu Dec  5 03:59:24 2013
+tormaster AT xpdm DOT us, Xpdm, US, , North America, True, False, Unknown, http://torproj.xpdm.us/, https://torproj.xpdm.us/, , , http://torproj.xpdm.us/dist/, https://torproj.xpdm.us/dist/, , http://h3prhz46uktgm4tt.onion/, Thu Dec  5 03:59:24 2013
+, , UA, , UA, True, False, No, http://torua.reactor-xg.kiev.ua/, , , , http://torua.reactor-xg.kiev.ua/dist/, , , , 
+ mail AT benjamin-meier DOT info, beme it, DE, , 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 Dec  5 03:59:24 2013
+wollomatic at posteo.eu, , DE, Germany, Europe, True, True, No, http://tormirror.almnet.de/, https://tormirror.almnet.de/, , , http://tormirror.almnet.de/dist/, https://tormirror.almnet.de/dist/, , , Thu Dec  5 03:59:24 2013
+, , LT, , LT, True, False, No, http://tor.vesta.nu/, , , , http://tor.vesta.nu/dist/, , , , Thu Dec  5 03:59:24 2013
+, , MX, , 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 Dec  5 03:59:24 2013
+, , FR, , , True, False, No, http://37.187.0.127/tormirror/, , , , http://37.187.0.127/tormirror/dist/, , , , 
+, , US, , US, True, False, No, http://tor.minibofh.org/, , , , http://tor.minibofh.org/dist/, , , , 
+, , UK, , UK, True, False, No, http://tor.mage.me.uk/, , , , http://tor.mage.me.uk/dist/, , , , 
+webmaster AT askapache DOT com, AskApache, US, California, US, True, False, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Thu Dec  5 03:59:24 2013
+nsane2307 eml cc, tor-mirror.de, DE, Germany, Europe, True, False, No, http://tor-mirror.de/, https://tor-mirror.de/, , , http://tor-mirror.de/dist/, https://tor-mirror.de/dist/, , , 
+, hessmo, US, , US, True, False, No, http://mirror.hessmo.com/tor/, , , , http://mirror.hessmo.com/tor/dist/, , , , Thu Dec  5 03:59:24 2013
+, , DE, , DE, True, False, No, http://tor.dev-random.de/, https://tor.dev-random.de/, , , http://tor.dev-random.de/dist/, https://tor.dev-random.de/dist/, , , Thu Dec  5 03:59:24 2013
+, India Tor Fans, IN, , IN, True, False, No, http://www.torproject.org.in/, , , , http://www.torproject.org.in/dist/, , , , Mon Nov 25 18:31:18 2013
+mirror-admin at linsrv.net, linsrv, FR, France, Europe, True, False, No, http://mirrors.linsrv.net/torproject/, , mirrors.linsrv.net::pub/torproject, ftp://ftp.linsrv.net/pub/torproject/, http://mirrors.linsrv.net/torproject/dist/, , mirrors.linsrv.net::pub/torproject/dist, , Thu Dec  5 03:59:24 2013
+, , FR, , FR, True, False, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Thu Dec  5 03:59:24 2013
+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, , , Thu Dec  5 03:59:24 2013
+BarkerJr AT barkerjr DOT net, BarkerJr, FR, , FR, True, False, No, http://www.oignon.net/, https://www.oignon.net/, , , http://www.oignon.net/dist/, https://www.oignon.net/dist/, , , Thu Dec  5 03:59:24 2013
+root AT amorphis DOT eu, Amorphis, NL, , Europe, True, False, Unknown, http://tor.amorphis.eu/, , , , http://tor.amorphis.eu/dist/, , , , Wed Dec  4 22:13:02 2013
+hackthissite.org, HackThisSite.org, US, , US, True, True, No, http://tor.hackthissite.org/, https://tor.hackthissite.org/, , , http://mirror.hackthissite.org/tor, https://mirror.hackthissite.org/tor, , , Thu Dec  5 03:59:24 2013
+citizen428 AT gmail DOT com, [[:bbs:]], DE, , Europe, True, False, Unknown, http://tor.blingblingsquad.net/, https://tor.blingblingsquad.net/, , , http://tor.blingblingsquad.net/dist/, https://tor.blingblingsquad.net/dist/, , , 
+, , DE, , DE, True, False, No, http://tor.linuxlounge.net/, https://tor.linuxlounge.net/, , , http://tor.linuxlounge.net/dist/, https://tor.linuxlounge.net/dist/, , , 
+, , US, , US, True, False, No, , , , , http://www.netgull.com/torproject/, , , , 
+paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, True, False, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Thu Dec  5 03:59:24 2013
+, cyberarmy, AT, , AT, True, False, No, http://tor.cyberarmy.at/, , , , , , , , Thu Dec  5 03:59:24 2013
+, , DE, , DE, True, False, No, http://torproject.cryptowars.info/, https://torproject.cryptowars.info/, rsync://torproject.cryptowars.info/, , http://torproject.cryptowars.info/dist/, https://torproject.cryptowars.info/dist/, , , Thu Dec  5 03:59:24 2013
+hostmaster AT zombiewerks DOT com, TheOnionRouter, IS, , Iceland, True, False, Unknown, http://theonionrouter.com/, , , , http://theonionrouter.com/dist/, , , , Thu Dec  5 03:59:24 2013
+, crazyhaze.de, DE, , DE, True, False, No, http://tor.crazyhaze.de/, https://tor.crazyhaze.de/, , , http://tor.crazyhaze.de/dist/, https://tor.crazyhaze.de/dist/, , , Thu Dec  5 03:59:24 2013
+, , US, , US, True, False, No, http://torproject.guilhem.org/, https://torproject.guilhem.org/, , , http://torproject.guilhem.org/dist/, https://torproject.guilhem.org/dist/, , , Thu Dec  5 03:59:24 2013
+, chaos darmstadt, DE, Germany, Europe, True, False, No, http://mirrors.chaos-darmstadt.de/tor-mirror/, , , , http://mirrors.chaos-darmstadt.de/tor-mirror/dist/, , , , Thu Dec  5 03:59:24 2013
+, Soviet Anonymous, RU, , 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 Dec  5 03:59:24 2013
+, , US, , US, True, False, No, , , , ftp://mirrors.go-parts.com/tor/, http://mirrors.go-parts.com/tor/dist/, , rsync://mirrors.go-parts.com/mirrors/tor/, , Thu Dec  5 03:59:24 2013
+, NW Linux, US, WA, US, True, False, No, http://torproject.nwlinux.us/, , rsync://nwlinux.us/tor-web, , http://torproject.nwlinux.us/dist/, , rsync://nwlinux.us/tor-dist, , 
+, torservers, DE, , 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 Dec  5 03:59:24 2013
+, , NL, , NL, True, False, No, , , , , , https://www.coevoet.nl/tor/dist/, , , 
+, torland, GB, , 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 Dec  5 03:59:24 2013
+, , FR, , FR, True, False, No, http://torproject.c3l.lu/, , , , http://torproject.c3l.lu/dist/, , , , Thu Dec  5 03:59:24 2013
+, Lightning-bolt.net, CZ, , CZ, True, False, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Thu Dec  5 03:59:24 2013
+, LazyTiger, FR, , FR, True, False, No, http://tor.taiga-san.net/, , , , http://tor.taiga-san.net/dist/, , , , 
+, , EE, , EE, True, False, No, http://tor.li/, https://tor.li/, , , http://tor.li/dist/, https://tor.li/dist/, , , 
+, homosu, SE, , SE, True, False, No, http://tor.homosu.net/, , , , http://tor.homosu.net/dist/, , , , Wed Dec  4 07:16:29 2013
+IceBear, myRL.net, IS, , IS, True, False, No, http://tor.myrl.net/, https://tor.myrl.net/, , , http://tor.myrl.net/dist/, https://tor.myrl.net/dist/, , , Thu Dec  5 03:59:24 2013


Property changes on: website/trunk/include/tor-mirrors.csv
___________________________________________________________________
Added: svn:mime-type
   + text/csv

Modified: website/trunk/update-mirrors.pl
===================================================================
--- website/trunk/update-mirrors.pl	2013-12-05 08:13:08 UTC (rev 26452)
+++ website/trunk/update-mirrors.pl	2013-12-05 17:11:12 UTC (rev 26453)
@@ -45,7 +45,7 @@
          	push @links, Fetch($attr_value, \&ExtractLinks);
          }
 	 elsif ($attr_value =~ /\.(xpi|dmg|exe|tar\.gz)$/)
-	 #elsif ($attr_value =~ /\.(asc)$/)
+	 #elsif ($attr_value =~ /\.(asc)$/) # small pgp files easier to test with
          {
          	push @links, $attr_value;
          }
@@ -58,12 +58,11 @@
     $content    = sanitize($content);
     my $date    = str2time($content);
 
-    print "Extracting possible date from: $content\n";
     if ($date) {
-        print "We've fetched a date $date.\n";
+    	print "ExtractDate($content) = $date\n";
         return $date;
     } else {
-        print "We haven't fetched a date.\n";
+    	print "ExtractDate($content) = ?\n";
 	return undef;
     }
 }
@@ -75,12 +74,11 @@
 
 sub Fetch {
     my ($url, $sub) = @_; # Base url for mirror
-    print "Fetch $url\n";
 
     my $request = new HTTP::Request GET => "$url";
     my $result = $lua->request($request);
     my $code = $result->code();
-    print "\tResult code $code\n";
+    print "\nGET $url: $code\n";
 
     if ($result->is_success && $code eq "200"){
        my $content = $result->content;
@@ -89,1286 +87,52 @@
         } else {
             print "Unable to fetch $url, empty content returned.\n";
         }
-
-    } else {
-       print "Our request failed, we had no result.\n";
     }
 
     return undef;
 }
+my @columns;
+sub LoadMirrors {
+    open(CSV, "<", "include/tor-mirrors.csv") or die "Cannot open tor-mirrors.csv: $!"; 
+    my $line = <CSV>;
+    chomp($line);
+    @columns = split(/\s*,\s*/, $line);
+    my @mirrors;
+    while ($line = <CSV>)
+    {
+        chomp($line);
+	my @values = split(/\s*,\s*/, $line);
+	my %server;
+	for (my $i = 0; $i < scalar(@columns); $i++)
+	{
+	    $server{$columns[$i]} = $values[$i] || '';
+	}
+	$server{updateDate} = str2time($server{updateDate}) if ($server{updateDate});
+	push @mirrors, {%server};
+    }
+    close(CSV);
+    return @mirrors;
+}
 
-# This is the list of all known Tor mirrors
-# Add new mirrors to the bottom!
-my %m = (
-
-
-        mirror000 => {
-            adminContact => "coralcdn.org",
-            orgName => "CoralCDN",
-            isoCC => "INT",
-            subRegion => "",
-            region => "INT",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "Yes",
-            httpWebsiteMirror => "http://www.torproject.org.nyud.net/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://www.torproject.org.nyud.net/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-        mirror001 => {
-            adminContact => "BarkerJr AT barkerjr DOT net",
-            orgName => "BarkerJr",
-            isoCC => "FR",
-            subRegion => "",
-            region => "FR",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://www.oignon.net/",
-            httpsWebsiteMirror => "https://www.oignon.net/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://www.oignon.net/dist/",
-            httpsDistMirror => "https://www.oignon.net/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-       mirror003 => {
-            adminContact => "citizen428 AT gmail DOT com",
-            orgName => "[[:bbs:]]",
-            isoCC => "DE",
-            subRegion => "",
-            region => "Europe",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "Unknown",
-            httpWebsiteMirror => "http://tor.blingblingsquad.net/",
-            httpsWebsiteMirror => "https://tor.blingblingsquad.net/",
-            ftpWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            httpDistMirror => "http://tor.blingblingsquad.net/dist/",
-            httpsDistMirror => "https://tor.blingblingsquad.net/dist/",
-            rsyncDistMirror => ""
-        },
-
-       mirror007 => {
-            adminContact => "info AT zentrum-der-gesundheit DOT de",
-            orgName => "Zentrum der Gesundheit",
-            isoCC => "DK",
-            subRegion => "",
-            region => "Europe",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "Unknown",
-            httpWebsiteMirror => "http://tor.idnr.ws/",
-            ftpWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            httpDistMirror => "http://tor.idnr.ws/dist/",
-            rsyncDistMirror => ""
-        },
-
-       mirror008 => {
-            adminContact => "root AT amorphis DOT eu",
-            orgName => "Amorphis",
-            isoCC => "NL",
-            subRegion => "",
-            region => "Europe",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "Unknown",
-            httpWebsiteMirror => "http://tor.amorphis.eu/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.amorphis.eu/dist/",
-            rsyncDistMirror => ""
-        },
-       mirror010 => {
-            adminContact => "webmaster AT ccc DOT de",
-            orgName => "CCC",
-            isoCC => "NL",
-            subRegion => "",
-            region => "Europe",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "Unknown",
-            httpWebsiteMirror => "http://tor.ccc.de/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.ccc.de/dist/",
-            rsyncDistMirror => ""
-        },
-
-       mirror013 => {
-	    adminContact => "hostmaster AT zombiewerks DOT com",
-            orgName => "TheOnionRouter",
-            isoCC => "IS",
-            subRegion => "",
-            region => "Iceland",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "Unknown",
-            httpWebsiteMirror => "http://theonionrouter.com/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://theonionrouter.com/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => ""
-        },
-    mirror014 => {
-        adminContact => "tormaster AT xpdm DOT us",
-        orgName => "Xpdm",
-        isoCC => "US",
-        subRegion => "",
-        region => "North America",
-        ipv4 => "True",
-        ipv6 => "False",
-        loadBalanced => "Unknown",
-        httpWebsiteMirror => "http://torproj.xpdm.us/",
-        httpsWebsiteMirror => "https://torproj.xpdm.us/",
-        rsyncWebsiteMirror => "",
-        ftpWebsiteMirror => "",
-        httpDistMirror => "http://torproj.xpdm.us/dist/",
-        httpsDistMirror => "https://torproj.xpdm.us/dist/",
-        rsyncDistMirror => "",
-        hiddenServiceMirror => "http://h3prhz46uktgm4tt.onion/"
-        },
-     mirror016 => {
-            adminContact => "security AT hostoffice DOT hu",
-            orgName => "Unknown",
-            isoCC => "HU",
-            subRegion => "Hungary",
-            region => "Europe",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://mirror.tor.hu/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://mirror.tor.hu/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-   mirror018 => {
-            adminContact => "",
-            orgName => "chaos darmstadt",
-            isoCC => "DE",
-            subRegion => "Germany",
-            region => "Europe",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://mirrors.chaos-darmstadt.de/tor-mirror/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://mirrors.chaos-darmstadt.de/tor-mirror/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-	mirror019 => {
-            adminContact => "webmaster AT askapache DOT com",
-            orgName => "AskApache",
-            isoCC => "US",
-            subRegion => "California",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.askapache.com/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.askapache.com/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-	mirror020 => {
-            adminContact => " mail AT benjamin-meier DOT info ",
-            orgName => "beme it",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.beme-it.de/",
-            httpsWebsiteMirror => "https://tor.beme-it.de/",
-            rsyncWebsiteMirror => "rsync://tor.beme-it.de/tor",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.beme-it.de/dist/",
-            httpsDistMirror => "https://tor.beme-it.de/dist/",
-            rsyncDistMirror => "rsync://tor.beme-it.de/tor/dist",
-            hiddenServiceMirror => ""
-        },
-
-        mirror021 => {
-            adminContact => "",
-            orgName => "India Tor Fans",
-            isoCC => "IN",
-            subRegion => "",
-            region => "IN",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://www.torproject.org.in/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://www.torproject.org.in/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-        mirror024 => {
-            adminContact => "",
-            orgName => "homosu",
-            isoCC => "SE",
-            subRegion => "",
-            region => "SE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.homosu.net/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.homosu.net/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-        mirror025 => {
-            adminContact => "margus.random at mail.ee",
-            orgName => "CyberSIDE",
-            isoCC => "EE",
-            subRegion => "",
-            region => "EE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://cyberside.planet.ee/tor/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://cyberside.net.ee/tor/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => ""
-        },
-
-        mirror028 => {
-            adminContact => "",
-            orgName => "NW Linux",
-            isoCC => "US",
-            subRegion => "WA",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.nwlinux.us/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "rsync://nwlinux.us/tor-web",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.nwlinux.us/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "rsync://nwlinux.us/tor-dist",
-            hiddenServiceMirror => "",
-        },
-        mirror029 => {
-            adminContact => "",
-            orgName => "LazyTiger",
-            isoCC => "FR",
-            subRegion => "",
-            region => "FR",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.taiga-san.net/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.taiga-san.net/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror030 => {
-            adminContact => "",
-            orgName => "searchprivate",
-            isoCC => "US",
-            subRegion => "TX",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.searchprivate.com/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.searchprivate.com/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror031 => {
-            adminContact => "",
-            orgName => "cyberarmy",
-            isoCC => "AT",
-            subRegion => "",
-            region => "AT",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.cyberarmy.at/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror032 => {
-            adminContact => "",
-            orgName => "torproject.is",
-            isoCC => "IS",
-            subRegion => "",
-            region => "IS",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.is/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.is/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror033 => {
-            adminContact => "",
-            orgName => "torservers",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://www.torservers.net/mirrors/torproject.org/",
-            httpsWebsiteMirror => "https://www.torservers.net/mirrors/torproject.org/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://www.torservers.net/mirrors/torproject.org/dist/",
-            httpsDistMirror => "https://www.torservers.net/mirrors/torproject.org/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "http://hbpvnydyyjbmhx6b.onion/mirrors/torproject.org/",
-        },
-        mirror036 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "NL",
-            subRegion => "",
-            region => "NL",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "",
-            httpsDistMirror => "https://www.coevoet.nl/tor/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-      },
-        mirror038 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "LT",
-            subRegion => "",
-            region => "LT",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.vesta.nu/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.vesta.nu/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-      },
-        mirror045 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "TN",
-            subRegion => "",
-            region => "TN",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.mirror.tn/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.mirror.tn/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-      },
-        mirror045 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "TN",
-            subRegion => "",
-            region => "TN",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.antagonism.org/",
-            httpsWebsiteMirror => "https://torproject.antagonism.org/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-      },
-        mirror048 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "AT",
-            subRegion => "",
-            region => "AT",
-            ipv4 => "True",
-            ipv6 => "True",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.dont-know-me.at/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.dont-know-me.at/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror049 => {
-            adminContact => "IceBear",
-            orgName => "myRL.net",
-            isoCC => "IS",
-            subRegion => "",
-            region => "IS",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.myrl.net/",
-            httpsWebsiteMirror => "https://tor.myrl.net/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.myrl.net/dist/",
-            httpsDistMirror => "https://tor.myrl.net/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror050 => {
-            adminContact => "",
-            orgName => "borgmann.tv",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.borgmann.tv/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.borgmann.tv/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror051 => {
-            adminContact => "",
-            orgName => "torland",
-            isoCC => "GB",
-            subRegion => "",
-            region => "GB",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://mirror.torland.me/torproject.org/",
-            httpsWebsiteMirror => "https://mirror.torland.me/torproject.org/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://mirror.torland.me/torproject.org/dist/",
-            httpsDistMirror => "https://mirror.torland.me/torproject.org/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror052 => {
-            adminContact => "",
-            orgName => "spline",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.spline.de/",
-            httpsWebsiteMirror => "https://tor.spline.inf.fu-berlin.de/",
-            rsyncWebsiteMirror => "rsync://ftp.spline.de/tor",
-            ftpWebsiteMirror => "ftp://ftp.spline.de/pub/tor",
-            httpDistMirror => "http://tor.spline.de/dist/",
-            httpsDistMirror => "https://tor.spline.inf.fu-berlin.de/dist/",
-            rsyncDistMirror => "rsync://ftp.spline.de/tor/dist",
-            hiddenServiceMirror => "",
-        },
-        mirror053 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "AT",
-            subRegion => "",
-            region => "AT",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.ph3x.at/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.ph3x.at/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror054 => {
-            adminContact => "",
-            orgName => "hessmo",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://mirror.hessmo.com/tor/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://mirror.hessmo.com/tor/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror058 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "True",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.loritsu.com/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.loritsu.com/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror060 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.cryptowars.info/",
-            httpsWebsiteMirror => "https://torproject.cryptowars.info/",
-            rsyncWebsiteMirror => "rsync://torproject.cryptowars.info/",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.cryptowars.info/dist/",
-            httpsDistMirror => "https://torproject.cryptowars.info/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror062 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.dev-random.de/",
-            httpsWebsiteMirror => "https://tor.dev-random.de/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.dev-random.de/dist/",
-            httpsDistMirror => "https://tor.dev-random.de/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror063 => {
-            adminContact => "",
-            orgName => "crazyhaze.de",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.crazyhaze.de/",
-            httpsWebsiteMirror => "https://tor.crazyhaze.de/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.crazyhaze.de/dist/",
-            httpsDistMirror => "https://tor.crazyhaze.de/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror066 => {
-            adminContact => "",
-            orgName => "Lightning-bolt.net",
-            isoCC => "CZ",
-            subRegion => "",
-            region => "CZ",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.lightning-bolt.net/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.lightning-bolt.net/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror067 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.mirrors.whitedholdings.org/",
-            httpsWebsiteMirror => "https://tor.mirrors.whitedholdings.org/",
-            rsyncWebsiteMirror => "rsync://mirrors.whitedholdings.org/tor",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.mirrors.whitedholdings.org/dist/",
-            httpsDistMirror => "https://tor.mirrors.whitedholdings.org/dist/",
-            rsyncDistMirror => "rsync://tor.mirrors.whitedholdings.org/tor-dist",
-            hiddenServiceMirror => "",
-     },
-        mirror069 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "FR",
-            subRegion => "",
-            region => "FR",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.mirror.chekanov.net/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.mirror.chekanov.net/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror072 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.minibofh.org/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.minibofh.org/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror073 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "UA",
-            subRegion => "",
-            region => "UA",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torua.reactor-xg.kiev.ua/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torua.reactor-xg.kiev.ua/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror075 => {
-            adminContact => "",
-            orgName => "me0w.cc",
-            isoCC => "RO",
-            subRegion => "",
-            region => "RO",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.me0w.cc/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.me0w.cc/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror076 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://mirror.nametoday.me/tor/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://mirror.nametoday.me/tor/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-        },
-        mirror077 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "UK",
-            subRegion => "",
-            region => "UK",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.mage.me.uk/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.mage.me.uk/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror078 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "CH",
-            subRegion => "",
-            region => "CH",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.pillo-srv.ch/",
-            httpsWebsiteMirror => "https://torproject.pillo-srv.ch/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.pillo-srv.ch/dist/",
-            httpsDistMirror => "https://torproject.pillo-srv.ch/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror079 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "LU",
-            subRegion => "",
-            region => "LU",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.adamas.ai/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.adamas.ai/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror080 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "FR",
-            subRegion => "",
-            region => "FR",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.c3l.lu/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.c3l.lu/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror081 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "EE",
-            subRegion => "",
-            region => "EE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.li/",
-            httpsWebsiteMirror => "https://tor.li/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.li/dist/",
-            httpsDistMirror => "https://tor.li/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror082 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "True",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://mirror.nametoday.me/tor/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://mirror.nametoday.me/tor/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror085 => {
-            adminContact => "",
-            orgName => "Soviet Anonymous",
-            isoCC => "RU",
-            subRegion => "",
-            region => "RU",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://creep.im/tor",
-            httpsWebsiteMirror => "https://creep.im/tor",
-            rsyncWebsiteMirror => "rsync://creep.im/tor",
-            ftpWebsiteMirror => "ftp://creep.im/mirrors/tor",
-            httpDistMirror => "http://creep.im/tor/dist/",
-            httpsDistMirror => "https://creep.im/tor/dist/",
-            rsyncDistMirror => "rsync://creep.im/tor-dist",
-            hiddenServiceMirror => "",
-    },
-        mirror086 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://199.175.55.215/",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://199.175.55.215/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror087 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "DE",
-            subRegion => "",
-            region => "DE",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://tor.linuxlounge.net/",
-            httpsWebsiteMirror => "https://tor.linuxlounge.net/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://tor.linuxlounge.net/dist/",
-            httpsDistMirror => "https://tor.linuxlounge.net/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror088 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "ftp://mirrors.go-parts.com/tor/",
-            httpDistMirror => "http://mirrors.go-parts.com/tor/dist/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "rsync://mirrors.go-parts.com/mirrors/tor/",
-            hiddenServiceMirror => "",
-    },
-        mirror089 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "",
-            httpsWebsiteMirror => "",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://www.netgull.com/torproject/",
-            httpsDistMirror => "",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror090 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "US",
-            subRegion => "",
-            region => "US",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://torproject.guilhem.org/",
-            httpsWebsiteMirror => "https://torproject.guilhem.org/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://torproject.guilhem.org/dist/",
-            httpsDistMirror => "https://torproject.guilhem.org/dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-        mirror091 => {
-            adminContact => "",
-            orgName => "",
-            isoCC => "MX",
-            subRegion => "",
-            region => "MX",
-            ipv4 => "True",
-            ipv6 => "False",
-            loadBalanced => "No",
-            httpWebsiteMirror => "http://fbnaia.homelinux.net/torproject/",
-            httpsWebsiteMirror => "https://fbnaia.homelinux.net/torproject/",
-            rsyncWebsiteMirror => "",
-            ftpWebsiteMirror => "",
-            httpDistMirror => "http://fbnaia.homelinux.net/torproject/dist/",
-            httpsDistMirror => "https://fbnaia.homelinux.net/torproject//dist/",
-            rsyncDistMirror => "",
-            hiddenServiceMirror => "",
-    },
-	mirror092 => {
-	    adminContact => "hackthissite.org",
-	    orgName => "HackThisSite.org",
-	    isoCC => "US",
-	    subRegion => "",
-	    region => "US",
-	    ipv4 => "True",
-	    ipv6 => "True",
-	    loadBalanced => "No",
-	    httpWebsiteMirror => "http://tor.hackthissite.org/",
-	    httpsWebsiteMirror => "https://tor.hackthissite.org/",
-	    rsyncWebsiteMirror => "",
-	    ftpWebsiteMirror => "",
-	    httpDistMirror => "http://mirror.hackthissite.org/tor",
-	    httpsDistMirror => "https://mirror.hackthissite.org/tor",
-	    rsyncDistMirror => "",
-	    hiddenServiceMirror => ""
-    },
-	mirror093 => {
-	  adminContact => "http://sebastian.pfeifer.or.at/",
-	  orgName => "TechAsk.IT",
-	  isoCC => "AT",
-	  subRegion => "Favoriten",
-	  region => "Wien",
-	  ipv4 => "True",
-	  ipv6 => "True",
-	  loadBalanced => "No",
-	  httpWebsiteMirror => "http://www.unicorncloud.org/public/torproject.org/",
-	  httpsWebsiteMirror => "https://www.unicorncloud.org/public/torproject.org/",
-	  rsyncWebsiteMirror => "",
-	  ftpWebsiteMirror => "",
-	  httpDistMirror => "http://www.unicorncloud.org/public/torproject.org/dist",
-	  httpsDistMirror => "https://www.unicorncloud.org/public/torproject.org/dist",
-	  rsyncDistMirror => "",
-	  hiddenServiceMirror => ""
-    },
-      mirror094 => {
-	adminContact =>"http://www.multinet.no",
-	orgName => "MultiNet AS",
-	isoCC => "NO",
-	subRegion => "Trondheim",
-	region => "Trondheim",
-	ipv4 => "True",
-	ipv6 => "True",
-	loadBalanced => "No",
-	httpWebsiteMirror =>"http://tor.multinet.no/",
-	httpsWebsiteMirror => "",
-	rsyncWebsiteMirror => "",
-	ftpWebsiteMirror => "",
-	httpDistMirror =>"http://tor.multinet.no/dist/",
-	httpsDistMirror => "",
-	rsyncDistMirror => "",
-	hiddenServiceMirror => ""
-    },
-      mirror095 => {
-	adminContact => "mirror-admin\@linsrv.net",
-	orgName => "linsrv",
-	isoCC => "FR",
-	subRegion => "France",
-	region => "Europe",
-	ipv4 => "True",
-	ipv6 => "False",
-	loadBalanced => "No",
-	httpWebsiteMirror => "http://mirrors.linsrv.net/torproject/",
-	httpsWebsiteMirror => "",
-	rsyncWebsiteMirror => "mirrors.linsrv.net::pub/torproject",
-	ftpWebsiteMirror => "ftp://ftp.linsrv.net/pub/torproject/",
-	httpDistMirror => "http://mirrors.linsrv.net/torproject/dist/",
-	httpsDistMirror => "",
-	rsyncDistMirror => "mirrors.linsrv.net::pub/torproject/dist",
-	hiddenServiceMirror => ""
-    },
-      mirror097 => {
-	adminContact => "marz.michael at gmail.com",
-	orgName => "",
-	isoCC => "DE",
-	subRegion => "",
-	region => "",
-	ipv4 => "True",
-	ipv6 => "False",
-	loadBalanced => "No",
-	httpWebsiteMirror => "http://tor.taskserver.de/",
-	httpsWebsiteMirror => "",
-	rsyncWebsiteMirror => "",
-	ftpWebsiteMirror => "",
-	httpDistMirror => "http://tor.taskserver.de/dist/",
-	httpsDistMirror => "",
-	rsyncDistMirror => "",
-	hiddenServiceMirror => ""
-    },
-      mirror098 => {
-	adminContact => "",
-	orgName => "",
-	isoCC => "FR",
-	subRegion => "",
-	region => "",
-	ipv4 => "True",
-	ipv6 => "False",
-	loadBalanced => "No",
-	httpWebsiteMirror => "http://37.187.0.127/tormirror/",
-	httpsWebsiteMirror => "",
-	rsyncWebsiteMirror => "",
-	ftpWebsiteMirror => "",
-	httpDistMirror => "http://37.187.0.127/tormirror/dist/",
-	httpsDistMirror => "",
-	rsyncDistMirror => "",
-	hiddenServiceMirror => ""
-    },
-      mirror099 => {
-	adminContact => "paul at coffswifi.net",
-	orgName => "CoffsWiFi",
-	isoCC => "AU",
-	subRegion => "Australia and New Zealand",
-	region => "APNIC",
-	ipv4 => "True",
-	ipv6 => "False",
-	loadBalanced => "No",
-	httpWebsiteMirror => "http://torproject.coffswifi.net",
-	httpsWebsiteMirror => "",
-	rsyncWebsiteMirror => "",
-	ftpWebsiteMirror => "",
-	httpDistMirror => "http://torproject.coffswifi.net/dist",
-	httpsDistMirror => "",
-	rsyncDistMirror => "",
-	hiddenServiceMirror => ""
-    },
-      mirror100 => {
-	adminContact => "nsane2307 eml cc",
-	orgName => "tor-mirror.de",
-	isoCC => "DE",
-	subRegion => "Germany",
-	region => "Europe",
-	ipv4 => "True",
-	ipv6 => "False",
-	loadBalanced => "No",
-	httpWebsiteMirror => "http://tor-mirror.de/",
-	httpsWebsiteMirror => "https://tor-mirror.de/",
-	rsyncWebsiteMirror => "",
-	ftpWebsiteMirror => "",
-	httpDistMirror => "http://tor-mirror.de/dist/",
-	httpsDistMirror => "https://tor-mirror.de/dist/",
-	rsyncDistMirror => "",
-	hiddenServiceMirror => ""
-    },
-    mirror101 => {
-      adminContact => "info /AT\ enn /DOT\ lu",
-      orgName => "Frenn vun der Enn A.S.B.L.",
-      isoCC => "IS",
-      subRegion => "Iceland",
-      region => "Europe",
-      ipv4 => "True",
-      ipv6 => "False",
-      loadBalanced => "No",
-      httpWebsiteMirror => "http://torproject.lu/",
-      httpsWebsiteMirror => "",
-      rsyncWebsiteMirror => "",
-      ftpWebsiteMirror => "",
-      httpDistMirror => "http://torproject.lu/dist/",
-      httpsDistMirror => "",
-      rsyncDistMirror => "",
-      hiddenServiceMirror => "http://btn6gqzqevlhoryd.onion"
-    },
-    mirror102 => {
-      adminContact => "neutrino8 AT gmail DOT com",
-      orgName => "teambelgium",
-      isoCC => "BE",
-      subRegion => "Belgium",
-      region => "Europe",
-      ipv4 => "True",
-      ipv6 => "False",
-      loadBalanced => "No",
-      httpWebsiteMirror => "http://tor.teambelgium.net:8082/",
-      httpsWebsiteMirror => "",
-      rsyncWebsiteMirror => "",
-      ftpWebsiteMirror => "ftp://tor.teambelgium.net:2121/torproject/",
-      httpDistMirror => "http://tor.teambelgium.net:8082/dist/",
-      httpsDistMirror => "",
-      rsyncDistMirror => "",
-      hiddenServiceMirror => ""
-    },
-    mirror103 => {
-      adminContact => "mirror ntzk de",
-      orgName => "Netzkonstrukt Berlin",
-      isoCC => "DE",
-      subRegion => "Germany",
-      region => "Europe",
-      ipv4 => "True",
-      ipv6 => "False",
-      loadBalanced => "No",
-      httpWebsiteMirror => "http://mirror.ntzk.de/torproject.org/",
-      httpsWebsiteMirror => "",
-      rsyncWebsiteMirror => "",
-      ftpWebsiteMirror => "",
-      httpDistMirror => "http://mirror.ntzk.de/torproject.org/dist/",
-      httpsDistMirror => "",
-      rsyncDistMirror => "",
-      hiddenServiceMirror => ""
-    },
-    mirror104 => {
-      adminContact => "webmaster AT bbln DOT nl",
-      orgName => "BBLN",
-      isoCC => "NL",
-      subRegion => "The Netherlands",
-      region => "Europe",
-      ipv4 => "True",
-      ipv6 => "True",
-      loadBalanced => "No",
-      httpWebsiteMirror => "http://t02.nl/mirror/",
-      httpsWebsiteMirror => "",
-      rsyncWebsiteMirror => "",
-      ftpWebsiteMirror => "",
-      httpDistMirror => "http://t02.nl/mirror/dist/",
-      httpsDistMirror => "",
-      rsyncDistMirror => "",
-      hiddenServiceMirror => ""
-    },
-    mirror105 => {
-      adminContact => "wollomatic at posteo.eu",
-      orgName => "",
-      isoCC => "DE",
-      subRegion => "Germany",
-      region => "Europe",
-      ipv4 => "True",
-      ipv6 => "True",
-      loadBalanced => "No",
-      httpWebsiteMirror => "http://tormirror.almnet.de/",
-      httpsWebsiteMirror => "https://tormirror.almnet.de/",
-      rsyncWebsiteMirror => "",
-      ftpWebsiteMirror => "",
-      httpDistMirror => "http://tormirror.almnet.de/dist/",
-      httpsDistMirror => "https://tormirror.almnet.de/dist/",
-      rsyncDistMirror => "",
-      hiddenServiceMirror => ""
-    },
-    mirror106 => { 
-      adminContact => "haskell at gmx.es", 
-      orgName => "", 
-      isoCC => "ES",
-      subRegion => "Spain",
-      region => "Europe",
-      ipv4 => "True",
-      ipv6 => "False",
-      loadBalanced => "No",
-      httpWebsiteMirror => "http://tor.zilog.es/",
-      httpsWebsiteMirror => "",
-      rsyncWebsiteMirror => "",
-      ftpWebsiteMirror => "",
-      httpDistMirror => "http://tor.zilog.es/dist/",
-      httpsDistMirror => "",
-      rsyncDistMirror => "",
-      hiddenServiceMirror => ""
+sub DumpMirrors {
+    my @m = @_;
+    open(CSV, ">", "tor-mirrors.csv") or die "Cannot open tor-mirrors.csv: $!";
+    print CSV join(", ", @columns) . "\n";
+    foreach my $server(@m) {
+	$server->{updateDate} = gmtime($server->{updateDate}) if ($server->{updateDate});
+        print CSV join(", ", map($server->{$_}, @columns));
+	print CSV "\n";
     }
-);
 
-my $count = values %m;
+    close(CSV);
+}
+
+my @m     = LoadMirrors();
+my $count = scalar(@m);
 print "We have a total of $count mirrors\n";
 print "Fetching the last updated date for each mirror.\n";
 
-my $tortime = Fetch("https://www.torproject.org/project/trace/www-master.torproject.org", \&ExtractDate);
+my $tortime  = Fetch("https://www.torproject.org/project/trace/www-master.torproject.org", \&ExtractDate);
 my @torfiles = Fetch("https://www.torproject.org/dist/", \&ExtractLinks); 
 my %randomtorfiles;
 
@@ -1383,89 +147,49 @@
 print "Using these files for sig matching:\n";
 print join("\n", keys %randomtorfiles);
 
-# Adjust offical Tor time by out-of-date offset: number of days * seconds per day
+# Adjust official Tor time by out-of-date offset: number of days * seconds per day
 $tortime -= 1 * 172800;
 print "The official time for Tor is $tortime. \n";
-my %todelete;
 
-foreach my $server ( keys %m ) {
-
-    print "Attempting to fetch from $server: $m{$server}{'orgName'}\n";
-
-    foreach my $serverType('httpWebsiteMirror', 'httpsWebsiteMirror', 'ftpWebsiteMirror')
+for(my $server = 0; $server < scalar(@m); $server++) {
+    foreach my $serverType('httpWebsiteMirror', 'httpsWebsiteMirror', 'ftpWebsiteMirror', 'httpDistMirror', 'httpsDistMirror')
     {
-        if ($m{$server}{$serverType}) {
-            print "Attempt to fetch via $serverType.\n";
-            $m{$server}{"updateDate"} = Fetch("$m{$server}{$serverType}/project/trace/www-master.torproject.org", \&ExtractDate);
-            if ($m{$server}{updateDate}) {
+        if ($m[$server]->{$serverType}) {
+            my $updateDate = Fetch("$m[$server]->{$serverType}/project/trace/www-master.torproject.org", \&ExtractDate);
+    				      
+            if ($updateDate) {
+		$m[$server]->{updateDate} = $updateDate;
+		$m[$server]->{sigMatched} = 1;
                 foreach my $randomtorfile(keys %randomtorfiles) {
-                	my $sig = Fetch("$m{$server}{$serverType}/$randomtorfile", \&ExtractSig);
-            		if (!$sig) {
-			    $todelete{$server} = "Unreadable $randomtorfile";
-		        } elsif ($sig ne $randomtorfiles{$randomtorfile}) {
-			    $todelete{$server} = "Sig mismatch on $randomtorfile";
-            		} else {
-        	    	    print "Sig $sig matches for $randomtorfile on $m{$server}{$serverType}\n";
-			}
-            	        last;
+                    my $sig = Fetch("$m[$server]->{$serverType}/$randomtorfile", \&ExtractSig);
+            	    if (!$sig) {
+		        print STDERR "Unreadable $randomtorfile on $m[$server]->{$serverType}";
+			$m[$server]->{sigMatched} = 0;
+            	    	last;
+		    } elsif ($sig ne $randomtorfiles{$randomtorfile}) {
+			$m[$server]->{sigMatched} = 0;
+		        print STDERR "Sig mismatch of $randomtorfile on $m[$server]->{$serverType}";
+            	    	last;
+            	    }
 		}
-            } else {
-		delete $m{$server}{updateDate};
-		$todelete{$server} = "Unreadable date";
             }
 	    last;
-        } 
+        }
     }
-    if (exists $m{$server}{updateDate}) {
-        print "We fetched and stored the following: $m{$server}{'updateDate'}\n";
-    } else {
-	$todelete{$server} = "Unreadable date";
-    } 
- }
-
-foreach my $outdated(keys %todelete)
-{
-    print "Deleted $outdated due to $todelete{$outdated}\n";
-    print Dumper($m{$outdated});
-    delete  $m{$outdated};
 }
 
-foreach my $k(keys %m)
-{
-    print "$k\n";
-    print "$m{$k}{updateDate}\n";
-}
-
-print "We sorted the following mirrors by their date of last update: \n";
-foreach my $server ( sort { $m{$b}{'updateDate'} <=> $m{$a}{'updateDate'}} keys %m ) {
-
-     print "\n";
-     print "Mirror $m{$server}{'orgName'}: \n";
-
-     foreach my $attrib ( sort keys %{$m{$server}} ) {
-        print "$attrib = $m{$server}{$attrib}";
-        print "\n";
-     };
-}
-
-my $outFile = "include/mirrors-table.wmi";
-my $html;
-open(OUT, "> $outFile") or die "Can't open $outFile: $!";
-
-# Here's where we open a file and print some wml include goodness
-# This is sorted from last known recent update to unknown update times
-foreach my $server ( sort { $m{$b}{'updateDate'} <=> $m{$a}{'updateDate'}} keys %m ) {
-
+sub PrintServer {
+     my $server = shift;
      my $time;
-     if ( "$m{$server}{'updateDate'}" ne "Unknown") {
-	  if ( $m{$server}{'updateDate'} > $tortime ) {
+     if ( $server->{'updateDate'} ) {
+	  if ( $server->{'updateDate'} > $tortime ) {
 	    $time = "Up to date";
 	  } else { $time = "DO NOT USE. Out of date."; }
      } else { $time = "Unknown"; }
 print OUT <<"END";
      \n<tr>\n
-         <td>$m{$server}{'isoCC'}</td>\n
-         <td>$m{$server}{'orgName'}</td>\n
+         <td>$server->{'isoCC'}</td>\n
+         <td>$server->{'orgName'}</td>\n
          <td>$time</td>\n
 END
 
@@ -1480,8 +204,8 @@
 
      foreach my $precious ( sort keys %prettyNames )
      {
-        if ($m{$server}{"$precious"}) {
-            print OUT "    <td><a href=\"" . $m{$server}{$precious} . "\">" .
+        if ($server->{"$precious"}) {
+            print OUT "    <td><a href=\"" . $server->{$precious} . "\">" .
                       "$prettyNames{$precious}</a></td>\n";
         } else { print OUT "    <td> - </td>\n"; }
      }
@@ -1489,4 +213,19 @@
      print OUT "</tr>\n";
 }
 
+
+my $outFile = "include/mirrors-table.wmi";
+open(OUT, "> $outFile") or die "Can't open $outFile: $!";
+
+# Here's where we open a file and print some wml include goodness
+# This is sorted from last known recent update to unknown update times
+foreach my $server ( sort { $b->{'updateDate'} <=> $a->{'updateDate'}} grep {$_->{updateDate} && $_->{sigMatched}} @m ) {
+    PrintServer($server);
+}
+foreach my $server ( grep {!$_->{updateDate} || !$_->{sigMatched}} @m ) {
+    PrintServer($server);
+}
+
+DumpMirrors(@m);
+
 close(OUT);



More information about the tor-commits mailing list