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

30 May '18
commit 9c2bae83e53ef8bc12d034fb422f74aa8c668c0f
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Mon Jan 8 10:52:33 2018 +0100
Unbreak links on CollecTor subpages.
The issue was that we didn't include required libraries for fetching
and parsing CollecTor's index.json file.
Fixes #24792.
---
build.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/build.xml b/build.xml
index be9db64..996d2a3 100644
--- a/build.xml
+++ b/build.xml
@@ -76,9 +76,11 @@
<patternset id="webruntime" >
<include name="asm-5.2.jar" />
<include name="asm-commons-5.2.jar" />
+ <include name="commons-compress-1.13.jar"/>
<include name="jetty9-plus${jetty.version}.jar"/>
<include name="jetty9-jndi${jetty.version}.jar"/>
<include name="jetty9-apache-jsp${jetty.version}-tweaked.jar" />
+ <include name="metrics-lib-${metricslibversion}.jar"/>
<include name="taglibs-standard-spec-1.2.5.jar"/>
<include name="tomcat8-embed-jasper-8.5.14.jar" />
<include name="tomcat8-embed-el-8.5.14.jar" />
1
0

[metrics-web/release] Update news.json to version 215 of doc/MetricsTimeline.
by karsten@torproject.org 30 May '18
by karsten@torproject.org 30 May '18
30 May '18
commit ab11b5848ea47d5cb0c5c65c47922f7fb431cf4f
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Jan 10 17:29:19 2018 +0100
Update news.json to version 215 of doc/MetricsTimeline.
As part of this update, support "ongoing" events introduced in version
215.
---
src/main/java/org/torproject/metrics/web/News.java | 9 +
src/main/resources/web/json/news.json | 498 +++++++++------------
2 files changed, 210 insertions(+), 297 deletions(-)
diff --git a/src/main/java/org/torproject/metrics/web/News.java b/src/main/java/org/torproject/metrics/web/News.java
index eddb162..53ca7b4 100644
--- a/src/main/java/org/torproject/metrics/web/News.java
+++ b/src/main/java/org/torproject/metrics/web/News.java
@@ -15,6 +15,8 @@ public class News {
private String end;
+ private boolean ongoing;
+
private List<String> places;
private String[] protocols;
@@ -33,6 +35,10 @@ public class News {
return this.end;
}
+ boolean getOngoing() {
+ return this.ongoing;
+ }
+
List<String> getPlaces() {
return this.places;
}
@@ -68,6 +74,9 @@ public class News {
if (null == this.start) {
/* Invalid event without start date. */
sb.append("N/A");
+ } else if (this.ongoing) {
+ /* Ongoing event. */
+ sb.append(this.start).append(" to present");
} else if (null == this.end || this.start.equals(this.end)) {
/* Single-day event. */
sb.append(this.start);
diff --git a/src/main/resources/web/json/news.json b/src/main/resources/web/json/news.json
index ee3e1cf..8f81364 100644
--- a/src/main/resources/web/json/news.json
+++ b/src/main/resources/web/json/news.json
@@ -303,6 +303,7 @@
},
{
"start": "2012-02-08",
+ "ongoing": true,
"places": [
"ir"
],
@@ -1290,19 +1291,10 @@
{
"start": "2015-07-29",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"July 8 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 6882B8663F74C23E26E3C2274C24CAB2E82D67A2</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=7004d67430857f8b279bbfe789…">commit</a>"
- ]
- },
- {
- "start": "2015-07-29",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"July 8 2015 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest F063BD5247EB9829E6B9E586393D7036656DAF44</code>).",
+ "description": "geoip and geoip6 databases updated to \"July 8 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 6882B8663F74C23E26E3C2274C24CAB2E82D67A2</code>, <code>geoip6-db-digest F063BD5247EB9829E6B9E586393D7036656DAF44</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=7004d67430857f8b279bbfe789…">commit</a>"
]
@@ -1332,19 +1324,10 @@
{
"start": "2015-09-24",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"September 3 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 022B9BADD23D743E51F165FB4C87E78E59F0BCB8</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=8b3e0b772991b5611f06596865…">commit</a>"
- ]
- },
- {
- "start": "2015-09-24",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"September 3 2015 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest DE13219FCF0F27999D1F91174CF80291B1746C95</code>).",
+ "description": "geoip and geoip6 databases updated to \"September 3 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 022B9BADD23D743E51F165FB4C87E78E59F0BCB8</code>, <code>geoip6-db-digest DE13219FCF0F27999D1F91174CF80291B1746C95</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=8b3e0b772991b5611f06596865…">commit</a>"
]
@@ -1382,19 +1365,10 @@
{
"start": "2015-10-09",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"October 9 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 5BF366AD4A0572D82A1A0F6628AF8EF7725E3AB9</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=62b02a1941c6c51efe36f804dd…">commit</a>"
- ]
- },
- {
- "start": "2015-10-09",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"October 9 2015 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 212DE17D5A368DCAFA19B95F168BFFA101145A93</code>).",
+ "description": "geoip and geoip6 databases updated to \"October 9 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 5BF366AD4A0572D82A1A0F6628AF8EF7725E3AB9</code>, <code>geoip6-db-digest 212DE17D5A368DCAFA19B95F168BFFA101145A93</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=62b02a1941c6c51efe36f804dd…">commit</a>"
]
@@ -1446,19 +1420,10 @@
{
"start": "2015-12-05",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"December 1 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 6346E26E2BC96F8511588CE2695E9B0339A75D32</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=dbb919cf9400738987bbb91166…">commit</a>"
- ]
- },
- {
- "start": "2015-12-05",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"December 1 2015 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 43CCB43DBC653D8CC16396A882C5F116A6004F0C</code>).",
+ "description": "geoip and geoip6 databases updated to \"December 1 2015 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 6346E26E2BC96F8511588CE2695E9B0339A75D32</code>, <code>geoip6-db-digest 43CCB43DBC653D8CC16396A882C5F116A6004F0C</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=dbb919cf9400738987bbb91166…">commit</a>"
]
@@ -1493,19 +1458,10 @@
{
"start": "2016-01-07",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"January 5 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 44FC92E4D3F8C9A3A49EE9A594790C52E684298A</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1496056c121d02193433d98173…">commit</a>"
- ]
- },
- {
- "start": "2016-01-07",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"January 5 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest BB261912C96611967FE5C1AE2700C965DBB8D61C</code>).",
+ "description": "geoip and geoip6 databases updated to \"January 5 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 44FC92E4D3F8C9A3A49EE9A594790C52E684298A</code>, <code>geoip6-db-digest BB261912C96611967FE5C1AE2700C965DBB8D61C</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1496056c121d02193433d98173…">commit</a>"
]
@@ -1558,19 +1514,10 @@
{
"start": "2016-02-04",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"February 2 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 9E16EDBB826B958A7B8B84674EA98B78C13F1177</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=d5ac79e056bdb740adecf45ef3…">commit</a>"
- ]
- },
- {
- "start": "2016-02-04",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"February 2 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest DF9538534517275080F8335DDEE4B879A3314ED4</code>).",
+ "description": "geoip and geoip6 databases updated to \"February 2 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 9E16EDBB826B958A7B8B84674EA98B78C13F1177</code>, <code>geoip6-db-digest DF9538534517275080F8335DDEE4B879A3314ED4</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=d5ac79e056bdb740adecf45ef3…">commit</a>"
]
@@ -1589,19 +1536,10 @@
{
"start": "2016-03-04",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"March 3 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest A34F49E5A871FA4D243C46C04B67BB3CAAFE6F74</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=8e2640b15ab72630e0f391a51f…">commit</a>"
- ]
- },
- {
- "start": "2016-03-04",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"March 3 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 9C8C4F7C7612849C88206726FCDA8CB85B8D27F3</code>).",
+ "description": "geoip and geoip6 databases updated to \"March 3 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest A34F49E5A871FA4D243C46C04B67BB3CAAFE6F74</code>, <code>geoip6-db-digest 9C8C4F7C7612849C88206726FCDA8CB85B8D27F3</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=8e2640b15ab72630e0f391a51f…">commit</a>"
]
@@ -1628,19 +1566,10 @@
{
"start": "2016-04-07",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"April 5 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest F9DFB82B6F1A480F07F4B87992CBFB7A48CB8DA2</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=97c6e717b9f3f198163c6d5b4b…">commit</a>"
- ]
- },
- {
- "start": "2016-04-07",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"April 5 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 769B499E6AE9FE0C2366141B931A3DB1B5489114</code>).",
+ "description": "geoip and geoip6 databases updated to \"April 5 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest F9DFB82B6F1A480F07F4B87992CBFB7A48CB8DA2</code>, <code>geoip6-db-digest 769B499E6AE9FE0C2366141B931A3DB1B5489114</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=97c6e717b9f3f198163c6d5b4b…">commit</a>"
]
@@ -1676,19 +1605,10 @@
{
"start": "2016-05-09",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"May 4 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 76631C314A048A59A1D801515CC7FD55CE719499</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=3c2d4611ce52024364bc729a97…">commit</a>"
- ]
- },
- {
- "start": "2016-05-09",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"May 4 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest C9392F0337A7509F1187890925CF7006F884ECBA</code>).",
+ "description": "geoip and geoip6 databases updated to \"May 4 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 76631C314A048A59A1D801515CC7FD55CE719499</code>, <code>geoip6-db-digest C9392F0337A7509F1187890925CF7006F884ECBA</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=3c2d4611ce52024364bc729a97…">commit</a>"
]
@@ -1744,19 +1664,10 @@
{
"start": "2016-06-12",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"June 7 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest DA31976A9C7D48C2C16EA70BCE9006772A0F4A34</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=c14c662758e95e85aa251c959c…">commit</a>"
- ]
- },
- {
- "start": "2016-06-12",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"June 7 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest FF1DD08CA9EB6528E1A6389E7154BD9586F24370</code>).",
+ "description": "geoip and geoip6 databases updated to \"June 7 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest DA31976A9C7D48C2C16EA70BCE9006772A0F4A34</code>, <code>geoip6-db-digest FF1DD08CA9EB6528E1A6389E7154BD9586F24370</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=c14c662758e95e85aa251c959c…">commit</a>"
]
@@ -1778,19 +1689,10 @@
{
"start": "2016-07-18",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"July 6 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 19FC902B6A860BA7E4BADCB5404482995F7E0763</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=79939c6f11edbd5bec21594b1f…">commit</a>"
- ]
- },
- {
- "start": "2016-07-18",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"July 6 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 7E717154718F2065240B90F8132F305AF78C9A9D</code>).",
+ "description": "geoip and geoip6 databases updated to \"July 6 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 19FC902B6A860BA7E4BADCB5404482995F7E0763</code>, <code>geoip6-db-digest 7E717154718F2065240B90F8132F305AF78C9A9D</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=79939c6f11edbd5bec21594b1f…">commit</a>"
]
@@ -1798,19 +1700,10 @@
{
"start": "2016-08-12",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"August 2 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 9DD185BEC4F482DDD20A0221B3DD3F40175F0123</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1410947351a0e498c2a4c568db…">commit</a>"
- ]
- },
- {
- "start": "2016-08-12",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"August 2 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest B1C1B6BDC9627E3D87530A2C70578AC69C20C5C6</code>).",
+ "description": "geoip and geoip6 databases updated to \"August 2 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 9DD185BEC4F482DDD20A0221B3DD3F40175F0123</code>, <code>geoip6-db-digest B1C1B6BDC9627E3D87530A2C70578AC69C20C5C6</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1410947351a0e498c2a4c568db…">commit</a>"
]
@@ -1883,19 +1776,10 @@
{
"start": "2016-09-07",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"September 6 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 72F8AD2CD7C97D173AD53276366EAD32B13E0A50</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=56f95ba94dfeaacee63047b161…">commit</a>"
- ]
- },
- {
- "start": "2016-09-07",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"September 6 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest B6427DEAD2291FBF8311A2233AF4960BF4009713</code>).",
+ "description": "geoip and geoip6 databases updated to \"September 6 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 72F8AD2CD7C97D173AD53276366EAD32B13E0A50</code>, <code>geoip6-db-digest B6427DEAD2291FBF8311A2233AF4960BF4009713</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=56f95ba94dfeaacee63047b161…">commit</a>"
]
@@ -1984,19 +1868,10 @@
{
"start": "2016-10-05",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"October 4 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest C14DF5AE94101562DEACDD296278B0EFA3EA26E5</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1b4984f196848cd404456fd125…">commit</a>"
- ]
- },
- {
- "start": "2016-10-05",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"October 4 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest A88A828020A558D37F97CF683D4521270F0511A2</code>).",
+ "description": "geoip and geoip6 databases updated to \"October 4 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest C14DF5AE94101562DEACDD296278B0EFA3EA26E5</code>, <code>geoip6-db-digest A88A828020A558D37F97CF683D4521270F0511A2</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1b4984f196848cd404456fd125…">commit</a>"
]
@@ -2040,6 +1915,7 @@
},
{
"start": "2016-10-25",
+ "ongoing": true,
"places": [
"eg"
],
@@ -2068,10 +1944,11 @@
},
{
"start": "2016-11-03",
+ "ongoing": true,
"places": [
"tr"
],
- "description": "Turkey blocks Facebook, Twitter, YouTube, WhatsApp",
+ "description": "Turkey blocks Facebook, Twitter, YouTube, WhatsApp.",
"links": [
"<a href=\"https://turkeyblocks.org/2016/11/04/social-media-shutdown-turkey/\">article</a>"
]
@@ -2081,7 +1958,7 @@
"places": [
"tr"
],
- "description": "Turkey orders a block on VPN services and Tor",
+ "description": "Turkey orders a block on VPN services and Tor.",
"links": [
"<a href=\"http://turk-internet.com/portal/yazigoster.php?yaziid=54465\">Turkish article</a>",
"<a href=\"https://motherboard.vice.com/read/turkey-doubles-down-on-censorship-with-bl…">English article</a>",
@@ -2091,19 +1968,10 @@
{
"start": "2016-11-07",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"November 3 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 363C038D0BE61D6E0A63C43DE8EA70771ED7BEA5</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=ea597832e25e776a45375d18a9…">commit</a>"
- ]
- },
- {
- "start": "2016-11-07",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"November 3 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 6110A2B794AFF0180FD096A4759434CABD289C40</code>).",
+ "description": "geoip and geoip6 databases updated to \"November 3 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 363C038D0BE61D6E0A63C43DE8EA70771ED7BEA5</code>, <code>geoip6-db-digest 6110A2B794AFF0180FD096A4759434CABD289C40</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=ea597832e25e776a45375d18a9…">commit</a>"
]
@@ -2179,19 +2047,10 @@
{
"start": "2016-12-09",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"December 7 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 1317BB3525E85E01FB34A89E04CE549AC23D07BD</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=9db47e792160766de49b76bff7…">commit</a>"
- ]
- },
- {
- "start": "2016-12-09",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"December 7 2016 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 865048C69BEC02B37268BFBAD66D9729B21CFCF5</code>).",
+ "description": "geoip and geoip6 databases updated to \"December 7 2016 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 1317BB3525E85E01FB34A89E04CE549AC23D07BD</code>, <code>geoip6-db-digest 865048C69BEC02B37268BFBAD66D9729B21CFCF5</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=9db47e792160766de49b76bff7…">commit</a>"
]
@@ -2213,6 +2072,7 @@
},
{
"start": "2016-12-15",
+ "ongoing": true,
"places": [
"cd"
],
@@ -2226,19 +2086,10 @@
{
"start": "2017-01-04",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"January 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 672C29A4FA9BF81DE97CFE128741445E2BDE8097</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=3833f67dd2dc35dbcfe1d5659c…">commit</a>"
- ]
- },
- {
- "start": "2017-01-04",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"January 4 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 81F380639A8E1000539204949A363FD3BFAFBA74</code>).",
+ "description": "geoip and geoip6 databases updated to \"January 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 672C29A4FA9BF81DE97CFE128741445E2BDE8097</code>, <code>geoip6-db-digest 81F380639A8E1000539204949A363FD3BFAFBA74</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=3833f67dd2dc35dbcfe1d5659c…">commit</a>"
]
@@ -2272,6 +2123,7 @@
},
{
"start": "2017-02-10",
+ "ongoing": true,
"protocols": [
"<OR>",
"exit"
@@ -2284,19 +2136,10 @@
{
"start": "2017-02-12",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"February 8 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest C0C6099CE335916862978F77756C0B42521A74B2</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=f6016058b42aa1c4528fd8c7c2…">commit</a>"
- ]
- },
- {
- "start": "2017-02-12",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"February 8 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest A54B14B9D47584E010F763D3EAE23C4726F4A8D5</code>).",
+ "description": "geoip and geoip6 databases updated to \"February 8 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest C0C6099CE335916862978F77756C0B42521A74B2</code>, <code>geoip6-db-digest A54B14B9D47584E010F763D3EAE23C4726F4A8D5</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=f6016058b42aa1c4528fd8c7c2…">commit</a>"
]
@@ -2347,19 +2190,10 @@
{
"start": "2017-03-08",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"March 7 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 63921843E3AAA632088D189D877F836A373CD40D</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=4488c319dde4c986da01a4635e…">commit</a>"
- ]
- },
- {
- "start": "2017-03-08",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"March 7 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 2B93B9C6679BB09E1746F212A6DCDC6E710F5F52</code>).",
+ "description": "geoip and geoip6 databases updated to \"March 7 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 63921843E3AAA632088D189D877F836A373CD40D</code>, <code>geoip6-db-digest 2B93B9C6679BB09E1746F212A6DCDC6E710F5F52</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=4488c319dde4c986da01a4635e…">commit</a>"
]
@@ -2378,32 +2212,26 @@
{
"start": "2017-04-06",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"April 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 0F3D4A456E5078CC9E49398ADCB04C40EA49B793</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=9d7933296c187061ce121012cd…">commit</a>"
- ]
- },
- {
- "start": "2017-04-06",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"April 4 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 04F41F05FA167EF6EEE3FE953404AB0BCCD33008</code>).",
+ "description": "geoip and geoip6 databases updated to \"April 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 0F3D4A456E5078CC9E49398ADCB04C40EA49B793</code>, <code>geoip6-db-digest 04F41F05FA167EF6EEE3FE953404AB0BCCD33008</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=9d7933296c187061ce121012cd…">commit</a>"
]
},
{
"start": "2017-04-14",
+ "end": "2017-08-20",
"protocols": [
"<OR>"
],
"description": "Directory authority maatuska's bwscanner stops operating, leading to a drop in traffic on some relays.",
"links": [
- "<a href=\"https://lists.torproject.org/pipermail/tor-consensus-health/2017-April/0078…">tor-consensus-health post</a>",
- "<a href=\"https://lists.torproject.org/pipermail/tor-dev/2017-April/012215.html\">tor-dev thread</a>"
+ "<a href=\"https://lists.torproject.org/pipermail/tor-consensus-health/2017-April/0078…">tor-consensus-health post about start</a>",
+ "<a href=\"https://lists.torproject.org/pipermail/tor-consensus-health/2017-August/008…">tor-consensus-health post about end</a>",
+ "<a href=\"https://lists.torproject.org/pipermail/tor-dev/2017-April/012215.html\">tor-dev thread</a>",
+ "<a href=\"https://lists.torproject.org/pipermail/tor-consensus-health/2017-May/007908…">analysis</a>"
]
},
{
@@ -2426,19 +2254,10 @@
{
"start": "2017-05-08",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"May 2 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest B2E5105287668771E34A66F90B34982D419727EF</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=5207e41ffeb99089adbb56376c…">commit</a>"
- ]
- },
- {
- "start": "2017-05-08",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"May 2 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 8DA8AC3C8158CBFDF7DB53BBF73338246872371A</code>).",
+ "description": "geoip and geoip6 databases updated to \"May 2 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest B2E5105287668771E34A66F90B34982D419727EF</code>, <code>geoip6-db-digest 8DA8AC3C8158CBFDF7DB53BBF73338246872371A</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=5207e41ffeb99089adbb56376c…">commit</a>"
]
@@ -2486,25 +2305,16 @@
"links": [
"<a href=\"https://blog.torproject.org/blog/tor-browser-70-released\">blog post</a>",
"<a href=\"https://bugs.torproject.org/22429\">IPv6 ticket</a>",
- "<a href=\"https://trac.torproject.org/projects/tor/ticket/22468\">frosty and dragon ticket</a>"
- ]
- },
- {
- "start": "2017-06-09",
- "protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"June 8 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest AFD609025B66305AD9FA8E0B15AF4F2BC82271F1</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=104e8fa751c1bef051ac47e39d…">commit</a>"
+ "<a href=\"https://bugs.torproject.org/22468\">frosty and dragon ticket</a>"
]
},
{
"start": "2017-06-09",
"protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"June 8 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest A69FD14ACE46EE695F589ACE0EB7B915285B51B4</code>).",
+ "description": "geoip and geoip6 databases updated to \"June 8 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest AFD609025B66305AD9FA8E0B15AF4F2BC82271F1</code>, <code>geoip6-db-digest A69FD14ACE46EE695F589ACE0EB7B915285B51B4</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=104e8fa751c1bef051ac47e39d…">commit</a>"
]
@@ -2608,19 +2418,10 @@
{
"start": "2017-07-07",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"July 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 3D04F191098640F2E03B4D5F7800088D14B7EC30</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=b6acfa491e7fdb6e3d71665a55…">commit</a>"
- ]
- },
- {
- "start": "2017-07-07",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"July 4 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest A3649B9E909C59942FB3D8F874AB4BEA36E8BEC1</code>).",
+ "description": "geoip and geoip6 databases updated to \"July 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 3D04F191098640F2E03B4D5F7800088D14B7EC30</code>, <code>geoip6-db-digest A3649B9E909C59942FB3D8F874AB4BEA36E8BEC1</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=b6acfa491e7fdb6e3d71665a55…">commit</a>"
]
@@ -2641,21 +2442,25 @@
{
"start": "2017-08-03",
"protocols": [
- "ipv4"
+ "ipv4",
+ "ipv6"
],
- "description": "geoip database updated to \"August 3 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 75AABD32582AC554AF252DDC7BBBABE7C6F28B28</code>).",
+ "description": "geoip and geoip6 databases updated to \"August 3 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 75AABD32582AC554AF252DDC7BBBABE7C6F28B28</code>, <code>geoip6-db-digest A52EFFEF8CF6F3CAA8EBD34961361544E959FAE1</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1280de42a41ccf7ae398cc8652…">commit</a>"
]
},
{
- "start": "2017-08-03",
- "protocols": [
- "ipv6"
+ "start": "2017-08-07",
+ "ongoing": true,
+ "places": [
+ "cd"
],
- "description": "geoip6 database updated to \"August 3 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest A52EFFEF8CF6F3CAA8EBD34961361544E959FAE1</code>).",
+ "description": "The Democratic Republic of the Congo orders a block of social media services.",
"links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=1280de42a41ccf7ae398cc8652…">commit</a>"
+ "<a href=\"https://www.amnesty.org/en/latest/news/2017/08/drc-block-on-social-media-im…">article</a>",
+ "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-06-0…">relay graph</a>",
+ "<a href=\"https://metrics.torproject.org/userstats-bridge-country.html?start=2017-06-…">bridge graph</a>"
]
},
{
@@ -2718,19 +2523,10 @@
{
"start": "2017-09-07",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"September 6 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 0CE9EA8882EDED265451C36B49AE7BBB06A11C16</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=09618ffe38bc6cd91755c6c1ae…">commit</a>"
- ]
- },
- {
- "start": "2017-09-07",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"September 6 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest C4573496EBD1CC335843067107DA49E482568FF6</code>).",
+ "description": "geoip and geoip6 databases updated to \"September 6 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 0CE9EA8882EDED265451C36B49AE7BBB06A11C16</code>, <code>geoip6-db-digest C4573496EBD1CC335843067107DA49E482568FF6</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=09618ffe38bc6cd91755c6c1ae…">commit</a>"
]
@@ -2745,6 +2541,7 @@
},
{
"start": "2017-09-15",
+ "end": "2017-10-12",
"description": "Outage of the op-hk OnionPerf instance. Reported timeouts on the tor network increased, download speed improved.",
"links": [
"<a href=\"https://lists.torproject.org/pipermail/metrics-team/2017-October/000476.htm…">mailing list post</a>",
@@ -2767,19 +2564,10 @@
{
"start": "2017-10-05",
"protocols": [
- "ipv4"
- ],
- "description": "geoip database updated to \"October 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 3A59213E5CFEE380F544B72DC1105366C6BD1CDE</code>).",
- "links": [
- "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=b9d9b16b7685c79e6440e5f8a1…">commit</a>"
- ]
- },
- {
- "start": "2017-10-05",
- "protocols": [
+ "ipv4",
"ipv6"
],
- "description": "geoip6 database updated to \"October 4 2017 Maxmind GeoLite2 Country\" (<code>geoip6-db-digest 1B8C975E5C62CF0FB5B4E598AE27B7189952BB09</code>).",
+ "description": "geoip and geoip6 databases updated to \"October 4 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 3A59213E5CFEE380F544B72DC1105366C6BD1CDE</code>, <code>geoip6-db-digest 1B8C975E5C62CF0FB5B4E598AE27B7189952BB09</code>).",
"links": [
"<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=b9d9b16b7685c79e6440e5f8a1…">commit</a>"
]
@@ -2841,6 +2629,25 @@
]
},
{
+ "start": "2017-11-10",
+ "protocols": [
+ "ipv4",
+ "ipv6"
+ ],
+ "description": "geoip and geoip6 databases updated to \"November 6 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest E3C910F3B2A6C916C7BE33A943091EF57048B72C</code>, <code>geoip6-db-digest E8BD5B2E6554C27F718F1222667C09680D75F799</code>).",
+ "links": [
+ "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=6f8c32b7deb9f0cec6d1553aba…">commit</a>"
+ ]
+ },
+ {
+ "start": "2017-11-11",
+ "end": "2017-11-12",
+ "description": "Outage of the op-hk OnionPerf instance.",
+ "links": [
+ "<a href=\"https://metrics.torproject.org/torperf.html?start=2017-10-01&end=2017-12-01…">op-hk graph</a>"
+ ]
+ },
+ {
"start": "2017-11-15",
"end": "2017-11-15",
"protocols": [
@@ -2865,6 +2672,17 @@
]
},
{
+ "start": "2017-12-04",
+ "ongoing": true,
+ "description": "DDoS attack uses a bug in the KIST scheduler to crash relays by running them out of memory.",
+ "links": [
+ "<a href=\"https://lists.torproject.org/pipermail/tor-relays/2017-December/013669.html\">tor-relays thread</a>",
+ "<a href=\"https://metrics.torproject.org/relayflags.html?start=2017-11-01&end=2018-01…">relay graph</a>",
+ "<a href=\"https://lists.torproject.org/pipermail/tor-project/2017-December/001604.htm…">summary post</a>",
+ "<a href=\"https://bugs.torproject.org/24665\">ticket</a>"
+ ]
+ },
+ {
"start": "2017-12-05",
"end": "2017-12-15",
"places": [
@@ -2876,13 +2694,14 @@
]
},
{
- "start": "2017-12-04",
- "description": "DDoS attack uses a bug in the KIST scheduler to crash relays by running them out of memory.",
+ "start": "2017-12-20",
+ "protocols": [
+ "ipv4",
+ "ipv6"
+ ],
+ "description": "geoip and geoip6 databases updated to \"December 6 2017 Maxmind GeoLite2 Country\" (<code>geoip-db-digest 1D486694A710145631B295CC39ECC5682F75858C</code>, <code>geoip6-db-digest F33231CAC761A71F7C19273DB1E11CEE01E2D982</code>).",
"links": [
- "<a href=\"https://lists.torproject.org/pipermail/tor-relays/2017-December/013669.html\">tor-relays thread</a>",
- "<a href=\"https://metrics.torproject.org/relayflags.html?start=2017-11-01&end=2018-01…">relay graph</a>",
- "<a href=\"https://lists.torproject.org/pipermail/tor-project/2017-December/001604.htm…">summary post</a>",
- "<a href=\"https://bugs.torproject.org/24665\">ticket</a>"
+ "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=428f8a375b8846edd1a056ce66…">commit</a>"
]
},
{
@@ -2895,6 +2714,7 @@
},
{
"start": "2017-12-28",
+ "ongoing": true,
"places": [
"ir"
],
@@ -2907,6 +2727,25 @@
]
},
{
+ "start": "2018-01-05",
+ "ongoing": true,
+ "description": "Outage of the op-hk OnionPerf instance.",
+ "links": [
+ "<a href=\"https://metrics.torproject.org/torperf.html?start=2017-12-01&end=2017-02-01…">op-hk graph</a>"
+ ]
+ },
+ {
+ "start": "2018-01-08",
+ "protocols": [
+ "ipv4",
+ "ipv6"
+ ],
+ "description": "geoip and geoip6 databases updated to \"January 5 2018 Maxmind GeoLite2 Country\" (<code>geoip-db-digest ACE2AF82816B9D3F58FC9C79A41B4506D6DAD713</code>, <code>geoip6-db-digest 387B3F555F1E054F0F9971C726F49848C5B5CF8B</code>).",
+ "links": [
+ "<a href=\"https://gitweb.torproject.org/tor.git/commit/?id=8efbeb09826030302481619dab…">commit</a>"
+ ]
+ },
+ {
"start": "2016-02-24",
"places": [
"tm"
@@ -3024,6 +2863,7 @@
},
{
"start": "2017-01-15",
+ "end": "2017-03-01",
"places": [
"ae"
],
@@ -3031,9 +2871,9 @@
"<OR>",
"relay"
],
- "description": "Huge increase in relay users (200k+).",
+ "description": "Huge increase in relay users (400k+).",
"links": [
- "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-01-0…">graph</a>",
+ "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-01-0…">graph</a>",
"<a href=\"https://lists.torproject.org/pipermail/metrics-team/2017-January/000284.htm…">metrics-team thread</a>",
"<a href=\"https://www.reddit.com/r/TOR/comments/5pbukk/united_arab_emirates_went_from…">reddit thread</a>"
],
@@ -3087,6 +2927,22 @@
"unknown": true
},
{
+ "start": "2017-03-01",
+ "end": "2017-07-01",
+ "places": [
+ "ae"
+ ],
+ "protocols": [
+ "<OR>",
+ "relay"
+ ],
+ "description": "Another increase in relay users, with a slower rate of growth than the previous one.",
+ "links": [
+ "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-01-0…">graph</a>"
+ ],
+ "unknown": true
+ },
+ {
"start": "2017-04-05",
"end": "2017-04-13",
"places": [
@@ -3127,7 +2983,7 @@
"<OR>",
"relay"
],
- "description": "Direct users fluctuate widely in Taiwan after a 3× sudden increase.",
+ "description": "Relay users triple and begin to fluctuate in Taiwan.",
"links": [
"<a href=\"https://lists.torproject.org/pipermail/tor-talk/2017-May/043206.html\">tor-talk post</a>",
"<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-02-2…">graph</a>"
@@ -3169,6 +3025,7 @@
},
{
"start": "2017-06-07",
+ "end": "2017-12-14",
"places": [
"br"
],
@@ -3177,7 +3034,7 @@
],
"description": "Sustained increase of meek users in Brazil, similar to the one that took place between 2016-07-21 and 2017-03-03.",
"links": [
- "<a href=\"https://metrics.torproject.org/userstats-bridge-combined.html?start=2016-06…">graph</a>"
+ "<a href=\"https://metrics.torproject.org/userstats-bridge-combined.html?start=2016-06…">graph</a>"
],
"unknown": true
},
@@ -3210,6 +3067,37 @@
"unknown": true
},
{
+ "start": "2017-07-01",
+ "places": [
+ "ae"
+ ],
+ "protocols": [
+ "<OR>",
+ "relay"
+ ],
+ "description": "Sudden drop in relay users.",
+ "links": [
+ "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-01-0…">graph</a>"
+ ],
+ "unknown": true
+ },
+ {
+ "start": "2017-07-01",
+ "end": "2017-08-30",
+ "places": [
+ "ae"
+ ],
+ "protocols": [
+ "<OR>",
+ "relay"
+ ],
+ "description": "Slow increase in relay users.",
+ "links": [
+ "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-06-0…">graph</a>"
+ ],
+ "unknown": true
+ },
+ {
"start": "2017-07-15",
"end": "2017-07-22",
"places": [
@@ -3387,6 +3275,21 @@
"unknown": true
},
{
+ "start": "2017-09-01",
+ "places": [
+ "ae"
+ ],
+ "protocols": [
+ "<OR>",
+ "relay"
+ ],
+ "description": "Relay users remain volatile but flatten their rate of growth.",
+ "links": [
+ "<a href=\"https://metrics.torproject.org/userstats-relay-country.html?start=2017-06-0…">graph</a>"
+ ],
+ "unknown": true
+ },
+ {
"start": "2017-09-02",
"end": "2017-09-21",
"protocols": [
@@ -3450,6 +3353,7 @@
},
{
"start": "2017-12-10",
+ "ongoing": true,
"places": [
"de"
],
1
0

30 May '18
commit 09bab288e4c061769107f76c6b0bb91f521e7068
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Jan 26 09:11:51 2018 +0100
Fix documentation of family arrays.
Fixes #25033.
---
src/main/resources/web/jsps/onionoo.jsp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/main/resources/web/jsps/onionoo.jsp b/src/main/resources/web/jsps/onionoo.jsp
index a416366..fc80677 100644
--- a/src/main/resources/web/jsps/onionoo.jsp
+++ b/src/main/resources/web/jsps/onionoo.jsp
@@ -1491,7 +1491,7 @@ the relay did not report which version it runs.
<span class="required-false">optional</span>
<a href="#details_relay_effective_family" class="anchor">#</a>
<p>
-Array of $-prefixed fingerprints of relays that are in an effective,
+Array of fingerprints of relays that are in an effective,
mutual family relationship with this relay.
These relays are part of this relay's family and they consider this relay
to be part of their family.
@@ -1509,7 +1509,7 @@ found.
<span class="required-false">optional</span>
<a href="#details_relay_alleged_family" class="anchor">#</a>
<p>
-Array of $-prefixed fingerprints of relays that are not in an effective,
+Array of fingerprints of relays that are not in an effective,
mutual family relationship with this relay.
These relays are part of this relay's family but they don't consider this
relay to be part of their family.
@@ -1527,7 +1527,7 @@ found.
<span class="required-false">optional</span>
<a href="#details_relay_indirect_family" class="anchor">#</a>
<p>
-Array of $-prefixed fingerprints of relays that are not in an effective,
+Array of fingerprints of relays that are not in an effective,
mutual family relationship with this relay but that can be reached by
following effective, mutual family relationships starting at this relay.
Omitted if empty or if descriptor containing this information cannot be
1
0

[metrics-web/release] Document the relay version used by Onionoo for recommended_version
by karsten@torproject.org 30 May '18
by karsten@torproject.org 30 May '18
30 May '18
commit 9aaac03c3cd7a4982f47fae7949c7e9752195238
Author: teor <teor2345(a)gmail.com>
Date: Thu Jan 18 23:25:20 2018 +1100
Document the relay version used by Onionoo for recommended_version
Sometimes relay versions are different in the descriptor and in the
consensus. Onionoo uses the consensus version.
Documentation fix for #22488.
---
src/main/resources/web/jsps/onionoo.jsp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/main/resources/web/jsps/onionoo.jsp b/src/main/resources/web/jsps/onionoo.jsp
index b31b469..a416366 100644
--- a/src/main/resources/web/jsps/onionoo.jsp
+++ b/src/main/resources/web/jsps/onionoo.jsp
@@ -602,6 +602,7 @@ Filtering by host name is case-insensitive.
Return only relays and bridges running a Tor software version that is
recommended (parameter value <strong>true</strong>) or not recommended by
the directory authorities (parameter value <strong>false</strong>).
+Uses the version in the consensus or bridge network status.
Relays and bridges are not contained in either result, if the version they
are running is not known.
Parameter values are case-insensitive.
@@ -1477,6 +1478,7 @@ implementation.
<p>
Boolean field saying whether the Tor software version of this relay is
recommended by the directory authorities or not.
+Uses the relay version in the consensus.
Omitted if either the directory authorities did not recommend versions, or
the relay did not report which version it runs.
</p>
@@ -1822,6 +1824,7 @@ implementation.
<p>
Boolean field saying whether the Tor software version of this bridge is
recommended by the directory authorities or not.
+Uses the bridge version in the bridge network status.
Omitted if either the directory authorities did not recommend versions, or
the bridge did not report which version it runs.
<span class="blue">Added on November 28, 2017.</span>
1
0

[metrics-web/release] Adapt format on News page from related events.
by karsten@torproject.org 30 May '18
by karsten@torproject.org 30 May '18
30 May '18
commit 494a2637df6f70fcc13919f7ac91bbc29f371911
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 21 17:10:44 2017 +0100
Adapt format on News page from related events.
---
.../org/torproject/metrics/web/NewsServlet.java | 67 +---------------------
src/main/resources/web/jsps/news.jsp | 17 +++++-
2 files changed, 16 insertions(+), 68 deletions(-)
diff --git a/src/main/java/org/torproject/metrics/web/NewsServlet.java b/src/main/java/org/torproject/metrics/web/NewsServlet.java
index 7840a40..15717bd 100644
--- a/src/main/java/org/torproject/metrics/web/NewsServlet.java
+++ b/src/main/java/org/torproject/metrics/web/NewsServlet.java
@@ -82,77 +82,14 @@ public class NewsServlet extends AnyServlet {
.getStart()) > 0);
/* Sort news into categories. */
- Map<String[], List<String[]>> newsByCategory = new LinkedHashMap<>();
+ Map<String[], List<String>> newsByCategory = new LinkedHashMap<>();
for (String[] category : cutOffDates.values()) {
newsByCategory.put(category, new ArrayList<>());
}
for (News news : this.sortedNews) {
- StringBuilder sb = new StringBuilder();
- sb.append("<h3 class=\"media-heading\">").append(news.getStart());
- if (news.getEnd() != null) {
- sb.append(" to ").append(news.getEnd());
- }
- if (news.getPlaces() != null) {
- boolean appendUnknownCountry = false;
- for (String place : news.getPlaces()) {
- if (this.countries.containsKey(place)) {
- sb.append(" <span class=\"label label-warning\">")
- .append(this.countries.get(place)).append("</span>");
- } else {
- appendUnknownCountry = true;
- }
- }
- if (appendUnknownCountry) {
- sb.append(" <span class=\"label label-warning\">"
- + "Unknown country</span>");
- }
- }
- if (news.getProtocols() != null) {
- for (String protocol : news.getProtocols()) {
- switch (protocol) {
- case "relay":
- sb.append(" <span class=\"label label-success\">"
- + "Relays</span>");
- break;
- case "bridge":
- sb.append(" <span class=\"label label-primary\">"
- + "Bridges</span>");
- break;
- case "<OR>":
- sb.append(" <span class=\"label label-info\">"
- + "<OR></span>");
- break;
- default:
- sb.append(" <span class=\"label label-info\">").append(protocol)
- .append("</span>");
- break;
- }
- }
- }
- if (news.isUnknown()) {
- sb.append(" <span class=\"label label-default\">"
- + "Unknown</span>");
- }
- sb.append("</h3><p>").append(news.getDescription()).append("</p>");
- if (news.getLinks() != null && news.getLinks().length > 0) {
- int written = 0;
- sb.append("<p class=\"links\">");
- for (String link : news.getLinks()) {
- if (written++ > 0) {
- sb.append(" ");
- }
- if (link.startsWith("https://metrics.torproject.org/")) {
- sb.append(link);
- } else {
- sb.append(link.replaceFirst(">", " target=\"_blank\">"));
- }
- }
- sb.append("</p>");
- }
- String[] formattedNews = new String[] { sb.toString() };
for (Map.Entry<String, String[]> category : cutOffDates.entrySet()) {
if (news.getStart().compareTo(category.getKey()) >= 0) {
- newsByCategory.get(category.getValue()).add(formattedNews);
+ newsByCategory.get(category.getValue()).add(news.formatAsTableRow());
break;
}
}
diff --git a/src/main/resources/web/jsps/news.jsp b/src/main/resources/web/jsps/news.jsp
index 68f1689..499eade 100644
--- a/src/main/resources/web/jsps/news.jsp
+++ b/src/main/resources/web/jsps/news.jsp
@@ -20,9 +20,20 @@
<c:forEach var="category" items="${news}" varStatus="status">
<div class="container">
<h2>${category.key[0]} <a href="#${category.key[1]}" name="${category.key[1]}" class="anchor">#</a></h2>
- <c:forEach var="entry" items="${category.value}">
- <p>${entry[0]}<br></p>
- </c:forEach>
+ <table class="table events">
+ <thead>
+ <tr>
+ <th class="dates">Dates</th>
+ <th class="tags">Places/Protocols</th>
+ <th class="description">Description and Links</th>
+ </tr>
+ </thead>
+ <tbody>
+ <c:forEach var="entry" items="${category.value}">
+ ${entry}
+ </c:forEach>
+ </tbody>
+ </table>
</div>
</c:forEach>
1
0

[metrics-web/release] Avoid sending an error after a (partial) response.
by karsten@torproject.org 30 May '18
by karsten@torproject.org 30 May '18
30 May '18
commit b2f1b3944eb63bd7c3c383e35802a325584e84a8
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Jan 9 17:47:15 2018 +0100
Avoid sending an error after a (partial) response.
Also take out some unused code.
Fixes #24823.
---
CHANGELOG.md | 6 +++++
.../metrics/web/ResearchStatsServlet.java | 30 +++++-----------------
2 files changed, 13 insertions(+), 23 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f4adf1..adb518d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+# Changes in version ????
+
+ * Minor changes
+ - Avoid sending an error after a (partial) response.
+
+
# Changes in version 1.0.3 - 2017-12-20
* Major changes
diff --git a/src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java b/src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java
index 415e5b5..4d06241 100644
--- a/src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java
+++ b/src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java
@@ -56,26 +56,16 @@ public class ResearchStatsServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
- String requestUri = request.getRequestURI();
- if (requestUri.equals("/metrics/stats/")) {
- this.writeDirectoryListing(request, response);
+ File statsFile = this.determineStatsFile(request);
+ if (statsFile == null) {
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ } else if (!statsFile.exists()) {
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} else {
- File statsFile = this.determineStatsFile(request);
- if (statsFile == null) {
- response.sendError(HttpServletResponse.SC_NOT_FOUND);
- return;
- } else if (!this.writeStatsFile(statsFile, response)) {
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- }
+ this.writeStatsFile(statsFile, response);
}
}
- private void writeDirectoryListing(HttpServletRequest request,
- HttpServletResponse response) throws IOException, ServletException {
- response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
- response.setHeader("Location", "/?type=dt&level=ad");
- }
-
private File determineStatsFile(HttpServletRequest request) {
String requestedStatsFile = request.getRequestURI();
if (requestedStatsFile.endsWith(".csv")) {
@@ -93,11 +83,8 @@ public class ResearchStatsServlet extends HttpServlet {
}
}
- private boolean writeStatsFile(File statsFile,
+ private void writeStatsFile(File statsFile,
HttpServletResponse response) throws IOException, ServletException {
- if (!statsFile.exists()) {
- return false;
- }
response.setContentType("text/csv");
response.setHeader("Content-Length", String.valueOf(
statsFile.length()));
@@ -112,10 +99,7 @@ public class ResearchStatsServlet extends HttpServlet {
while ((length = bis.read(buffer)) > 0) {
bos.write(buffer, 0, length);
}
- } catch (IOException e) {
- return false;
}
- return true;
}
}
1
0

30 May '18
commit 26a6450be3d6b64091666e5ae453c2f30f1b1ee8
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Jan 25 10:07:25 2018 +0100
Fix typo in "IPv6 exititing" (-it).
---
src/main/R/rserver/graphs.R | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/R/rserver/graphs.R b/src/main/R/rserver/graphs.R
index 73b0ac1..e24a617 100644
--- a/src/main/R/rserver/graphs.R
+++ b/src/main/R/rserver/graphs.R
@@ -1243,7 +1243,7 @@ plot_relays_ipv6 <- function(start, end, path) {
scale_colour_hue(name = "", h.start = 90,
breaks = c("total", "announced", "reachable", "exiting"),
labels = c("Total (IPv4) OR", "IPv6 announced OR", "IPv6 reachable OR",
- "IPv6 exititing")) +
+ "IPv6 exiting")) +
expand_limits(y = 0) +
ggtitle("Relays by IP version") +
theme(legend.position = "top")
1
0
commit 92567231daea83b07453a77b86abece823b83567
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Jan 30 11:48:43 2018 +0100
Rename packages.
- Rename root package org.torproject.metrics to
org.torproject.metrics.stats to make it part of the Tor Metrics
name space.
- ernie.cron becomes org.torproject.metrics.stats.servers to get rid
of the legacy name and to reflect that it's all about servers and
bandwidth (provided by servers).
- org.torproject.metrics.web remains unchanged.
- org.torproject.metrics.web.graphs and
org.torproject.metrics.web.research are merged into
org.torproject.metrics.web.
- Remove special treatment for legacy package names, which is not
necessary anymore.
Resolves #24294.
---
build.xml | 9 +++------
.../java/org/torproject/metrics/{ => stats}/advbwdist/Main.java | 2 +-
.../java/org/torproject/metrics/{ => stats}/clients/Main.java | 2 +-
.../org/torproject/metrics/{ => stats}/collectdescs/Main.java | 2 +-
.../org/torproject/metrics/{ => stats}/connbidirect/Main.java | 2 +-
.../org/torproject/metrics/{ => stats}/hidserv/Aggregator.java | 2 +-
.../metrics/{ => stats}/hidserv/ComputedNetworkFractions.java | 2 +-
.../torproject/metrics/{ => stats}/hidserv/DateTimeHelper.java | 2 +-
.../org/torproject/metrics/{ => stats}/hidserv/Document.java | 2 +-
.../torproject/metrics/{ => stats}/hidserv/DocumentStore.java | 2 +-
.../metrics/{ => stats}/hidserv/ExtrapolatedHidServStats.java | 2 +-
.../org/torproject/metrics/{ => stats}/hidserv/Extrapolator.java | 2 +-
.../java/org/torproject/metrics/{ => stats}/hidserv/Main.java | 2 +-
.../java/org/torproject/metrics/{ => stats}/hidserv/Parser.java | 2 +-
.../metrics/{ => stats}/hidserv/ReportedHidServStats.java | 2 +-
.../org/torproject/metrics/{ => stats}/hidserv/Simulate.java | 2 +-
.../java/org/torproject/metrics/{ => stats}/onionperf/Main.java | 2 +-
.../{ernie/cron => metrics/stats/servers}/Configuration.java | 2 +-
.../stats/servers}/ConsensusStatsFileHandler.java | 2 +-
.../{ernie/cron => metrics/stats/servers}/LockFile.java | 2 +-
.../cron => metrics/stats/servers}/LoggingConfiguration.java | 2 +-
.../torproject/{ernie/cron => metrics/stats/servers}/Main.java | 4 +---
.../stats/servers}/RelayDescriptorDatabaseImporter.java | 2 +-
.../java/org/torproject/metrics/{ => stats}/webstats/Main.java | 2 +-
.../org/torproject/metrics/web/{graphs => }/BubblesServlet.java | 5 +----
.../java/org/torproject/metrics/web/{graphs => }/Countries.java | 2 +-
.../torproject/metrics/web/{graphs => }/GraphImageServlet.java | 2 +-
.../metrics/web/{graphs => }/GraphParameterChecker.java | 5 +----
src/main/java/org/torproject/metrics/web/GraphServlet.java | 3 ---
src/main/java/org/torproject/metrics/web/News.java | 2 --
src/main/java/org/torproject/metrics/web/NewsServlet.java | 2 --
.../java/org/torproject/metrics/web/{graphs => }/RObject.java | 2 +-
.../torproject/metrics/web/{graphs => }/RObjectGenerator.java | 5 +----
.../metrics/web/{research => }/ResearchStatsServlet.java | 2 +-
.../metrics/web/{graphs => }/TableParameterChecker.java | 5 +----
src/main/java/org/torproject/metrics/web/TableServlet.java | 3 ---
src/main/resources/web.xml | 8 ++++----
.../torproject/metrics/{ => stats}/connbidirect/MainTest.java | 2 +-
.../org/torproject/metrics/{ => stats}/webstats/MainTest.java | 2 +-
39 files changed, 40 insertions(+), 67 deletions(-)
diff --git a/build.xml b/build.xml
index 996d2a3..c9005d1 100644
--- a/build.xml
+++ b/build.xml
@@ -265,7 +265,7 @@
<!-- Expects legacy.config file in the base directory. -->
<target name="legacy" >
- <property name="module.name" value="legacy" />
+ <property name="module.name" value="servers" />
<property name="localmoddir" value="${modulebase}/${module.name}" />
<property name="statsdir"
value="${localmoddir}/stats" />
@@ -274,10 +274,7 @@
<copy file="${basedir}/legacy.config"
tofile="${localmoddir}/config"/>
- <antcall target="run-java">
- <param name="module.main"
- value="org.torproject.ernie.cron.Main" />
- </antcall>
+ <antcall target="run-java" />
<exec executable="psql"
dir="${localmoddir}"
@@ -443,7 +440,7 @@
<fail unless="have.jar" message="Please run 'ant jar' first."/>
<condition property="mainclass"
value="${module.main}"
- else="org.torproject.metrics.${module.name}.Main" >
+ else="org.torproject.metrics.stats.${module.name}.Main" >
<isset property="module.main"/>
</condition>
<property name="workingdir" value="${modulebase}/${module.name}" />
diff --git a/src/main/java/org/torproject/metrics/advbwdist/Main.java b/src/main/java/org/torproject/metrics/stats/advbwdist/Main.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/advbwdist/Main.java
rename to src/main/java/org/torproject/metrics/stats/advbwdist/Main.java
index 76c701f..6565961 100644
--- a/src/main/java/org/torproject/metrics/advbwdist/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/advbwdist/Main.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.advbwdist;
+package org.torproject.metrics.stats.advbwdist;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.DescriptorReader;
diff --git a/src/main/java/org/torproject/metrics/clients/Main.java b/src/main/java/org/torproject/metrics/stats/clients/Main.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/clients/Main.java
rename to src/main/java/org/torproject/metrics/stats/clients/Main.java
index 0ad3a49..4f083b9 100644
--- a/src/main/java/org/torproject/metrics/clients/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/clients/Main.java
@@ -1,7 +1,7 @@
/* Copyright 2013--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.clients;
+package org.torproject.metrics.stats.clients;
import org.torproject.descriptor.BandwidthHistory;
import org.torproject.descriptor.BridgeNetworkStatus;
diff --git a/src/main/java/org/torproject/metrics/collectdescs/Main.java b/src/main/java/org/torproject/metrics/stats/collectdescs/Main.java
similarity index 95%
rename from src/main/java/org/torproject/metrics/collectdescs/Main.java
rename to src/main/java/org/torproject/metrics/stats/collectdescs/Main.java
index 3ed0e71..04dc86d 100644
--- a/src/main/java/org/torproject/metrics/collectdescs/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/collectdescs/Main.java
@@ -1,7 +1,7 @@
/* Copyright 2015--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.collectdescs;
+package org.torproject.metrics.stats.collectdescs;
import org.torproject.descriptor.DescriptorCollector;
import org.torproject.descriptor.DescriptorSourceFactory;
diff --git a/src/main/java/org/torproject/metrics/connbidirect/Main.java b/src/main/java/org/torproject/metrics/stats/connbidirect/Main.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/connbidirect/Main.java
rename to src/main/java/org/torproject/metrics/stats/connbidirect/Main.java
index fa24e6e..1911472 100644
--- a/src/main/java/org/torproject/metrics/connbidirect/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/connbidirect/Main.java
@@ -1,7 +1,7 @@
/* Copyright 2015--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.connbidirect;
+package org.torproject.metrics.stats.connbidirect;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.DescriptorReader;
diff --git a/src/main/java/org/torproject/metrics/hidserv/Aggregator.java b/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/Aggregator.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
index c492f4d..a57fde5 100644
--- a/src/main/java/org/torproject/metrics/hidserv/Aggregator.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.io.BufferedWriter;
import java.io.File;
diff --git a/src/main/java/org/torproject/metrics/hidserv/ComputedNetworkFractions.java b/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/ComputedNetworkFractions.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
index 9f14cf7..48f3679 100644
--- a/src/main/java/org/torproject/metrics/hidserv/ComputedNetworkFractions.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.util.Collections;
import java.util.HashMap;
diff --git a/src/main/java/org/torproject/metrics/hidserv/DateTimeHelper.java b/src/main/java/org/torproject/metrics/stats/hidserv/DateTimeHelper.java
similarity index 98%
rename from src/main/java/org/torproject/metrics/hidserv/DateTimeHelper.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/DateTimeHelper.java
index 278ef80..58a785e 100644
--- a/src/main/java/org/torproject/metrics/hidserv/DateTimeHelper.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/DateTimeHelper.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.text.DateFormat;
import java.text.ParseException;
diff --git a/src/main/java/org/torproject/metrics/hidserv/Document.java b/src/main/java/org/torproject/metrics/stats/hidserv/Document.java
similarity index 95%
rename from src/main/java/org/torproject/metrics/hidserv/Document.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/Document.java
index af1489a..7c915a1 100644
--- a/src/main/java/org/torproject/metrics/hidserv/Document.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Document.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
/** Common interface of documents that are supposed to be serialized and
* stored in document files and later retrieved and de-serialized. */
diff --git a/src/main/java/org/torproject/metrics/hidserv/DocumentStore.java b/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/DocumentStore.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
index 488b89e..118071e 100644
--- a/src/main/java/org/torproject/metrics/hidserv/DocumentStore.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.io.BufferedReader;
import java.io.BufferedWriter;
diff --git a/src/main/java/org/torproject/metrics/hidserv/ExtrapolatedHidServStats.java b/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/ExtrapolatedHidServStats.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
index 2d89d15..d4a741d 100644
--- a/src/main/java/org/torproject/metrics/hidserv/ExtrapolatedHidServStats.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
/** Extrapolated network totals of hidden-service statistics reported by a
* single relay. Extrapolated values are based on reported statistics and
diff --git a/src/main/java/org/torproject/metrics/hidserv/Extrapolator.java b/src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/Extrapolator.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java
index 2372bed..4bce0e6 100644
--- a/src/main/java/org/torproject/metrics/hidserv/Extrapolator.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.io.File;
import java.util.HashSet;
diff --git a/src/main/java/org/torproject/metrics/hidserv/Main.java b/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
similarity index 98%
rename from src/main/java/org/torproject/metrics/hidserv/Main.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/Main.java
index f133e7b..a23c17f 100644
--- a/src/main/java/org/torproject/metrics/hidserv/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.io.File;
diff --git a/src/main/java/org/torproject/metrics/hidserv/Parser.java b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/Parser.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
index 9d3f8dd..f2abc78 100644
--- a/src/main/java/org/torproject/metrics/hidserv/Parser.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.DescriptorReader;
diff --git a/src/main/java/org/torproject/metrics/hidserv/ReportedHidServStats.java b/src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/ReportedHidServStats.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java
index 1bc2c6b..0ff5fd4 100644
--- a/src/main/java/org/torproject/metrics/hidserv/ReportedHidServStats.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
/* Hidden-service statistics reported by a single relay covering a single
* statistics interval of usually 24 hours. These statistics are reported
diff --git a/src/main/java/org/torproject/metrics/hidserv/Simulate.java b/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/hidserv/Simulate.java
rename to src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
index 1bb1167..a7bc1c3 100644
--- a/src/main/java/org/torproject/metrics/hidserv/Simulate.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.hidserv;
+package org.torproject.metrics.stats.hidserv;
import java.io.BufferedWriter;
import java.io.File;
diff --git a/src/main/java/org/torproject/metrics/onionperf/Main.java b/src/main/java/org/torproject/metrics/stats/onionperf/Main.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/onionperf/Main.java
rename to src/main/java/org/torproject/metrics/stats/onionperf/Main.java
index f77b85d..76c2809 100644
--- a/src/main/java/org/torproject/metrics/onionperf/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/onionperf/Main.java
@@ -1,4 +1,4 @@
-package org.torproject.metrics.onionperf;
+package org.torproject.metrics.stats.onionperf;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.DescriptorReader;
diff --git a/src/main/java/org/torproject/ernie/cron/Configuration.java b/src/main/java/org/torproject/metrics/stats/servers/Configuration.java
similarity index 99%
rename from src/main/java/org/torproject/ernie/cron/Configuration.java
rename to src/main/java/org/torproject/metrics/stats/servers/Configuration.java
index e223566..5be8d88 100644
--- a/src/main/java/org/torproject/ernie/cron/Configuration.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/Configuration.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.ernie.cron;
+package org.torproject.metrics.stats.servers;
import java.io.BufferedReader;
import java.io.File;
diff --git a/src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java b/src/main/java/org/torproject/metrics/stats/servers/ConsensusStatsFileHandler.java
similarity index 99%
rename from src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java
rename to src/main/java/org/torproject/metrics/stats/servers/ConsensusStatsFileHandler.java
index c47db13..8ccb3b5 100644
--- a/src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/ConsensusStatsFileHandler.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.ernie.cron.network;
+package org.torproject.metrics.stats.servers;
import org.torproject.descriptor.BridgeNetworkStatus;
import org.torproject.descriptor.Descriptor;
diff --git a/src/main/java/org/torproject/ernie/cron/LockFile.java b/src/main/java/org/torproject/metrics/stats/servers/LockFile.java
similarity index 97%
rename from src/main/java/org/torproject/ernie/cron/LockFile.java
rename to src/main/java/org/torproject/metrics/stats/servers/LockFile.java
index d8ff985..c6c63bb 100644
--- a/src/main/java/org/torproject/ernie/cron/LockFile.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/LockFile.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.ernie.cron;
+package org.torproject.metrics.stats.servers;
import java.io.BufferedReader;
import java.io.BufferedWriter;
diff --git a/src/main/java/org/torproject/ernie/cron/LoggingConfiguration.java b/src/main/java/org/torproject/metrics/stats/servers/LoggingConfiguration.java
similarity index 98%
rename from src/main/java/org/torproject/ernie/cron/LoggingConfiguration.java
rename to src/main/java/org/torproject/metrics/stats/servers/LoggingConfiguration.java
index 9f49dff..f14241b 100644
--- a/src/main/java/org/torproject/ernie/cron/LoggingConfiguration.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/LoggingConfiguration.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.ernie.cron;
+package org.torproject.metrics.stats.servers;
import java.io.IOException;
import java.text.SimpleDateFormat;
diff --git a/src/main/java/org/torproject/ernie/cron/Main.java b/src/main/java/org/torproject/metrics/stats/servers/Main.java
similarity index 95%
rename from src/main/java/org/torproject/ernie/cron/Main.java
rename to src/main/java/org/torproject/metrics/stats/servers/Main.java
index 4e272bc..5db867d 100644
--- a/src/main/java/org/torproject/ernie/cron/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/Main.java
@@ -1,9 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.ernie.cron;
-
-import org.torproject.ernie.cron.network.ConsensusStatsFileHandler;
+package org.torproject.metrics.stats.servers;
import java.io.File;
import java.util.logging.Logger;
diff --git a/src/main/java/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java b/src/main/java/org/torproject/metrics/stats/servers/RelayDescriptorDatabaseImporter.java
similarity index 99%
rename from src/main/java/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
rename to src/main/java/org/torproject/metrics/stats/servers/RelayDescriptorDatabaseImporter.java
index 99b931c..38afeec 100644
--- a/src/main/java/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/RelayDescriptorDatabaseImporter.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.ernie.cron;
+package org.torproject.metrics.stats.servers;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.DescriptorReader;
diff --git a/src/main/java/org/torproject/metrics/webstats/Main.java b/src/main/java/org/torproject/metrics/stats/webstats/Main.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/webstats/Main.java
rename to src/main/java/org/torproject/metrics/stats/webstats/Main.java
index 18433d2..f70963f 100644
--- a/src/main/java/org/torproject/metrics/webstats/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/webstats/Main.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.webstats;
+package org.torproject.metrics.stats.webstats;
import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
import org.slf4j.Logger;
diff --git a/src/main/java/org/torproject/metrics/web/graphs/BubblesServlet.java b/src/main/java/org/torproject/metrics/web/BubblesServlet.java
similarity index 92%
rename from src/main/java/org/torproject/metrics/web/graphs/BubblesServlet.java
rename to src/main/java/org/torproject/metrics/web/BubblesServlet.java
index 1cea611..8f83184 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/BubblesServlet.java
+++ b/src/main/java/org/torproject/metrics/web/BubblesServlet.java
@@ -1,10 +1,7 @@
/* Copyright 2013--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
-
-import org.torproject.metrics.web.Category;
-import org.torproject.metrics.web.MetricServlet;
+package org.torproject.metrics.web;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/src/main/java/org/torproject/metrics/web/graphs/Countries.java b/src/main/java/org/torproject/metrics/web/Countries.java
similarity index 99%
rename from src/main/java/org/torproject/metrics/web/graphs/Countries.java
rename to src/main/java/org/torproject/metrics/web/Countries.java
index 8472bd7..a2d3cea 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/Countries.java
+++ b/src/main/java/org/torproject/metrics/web/Countries.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
+package org.torproject.metrics.web;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/org/torproject/metrics/web/graphs/GraphImageServlet.java b/src/main/java/org/torproject/metrics/web/GraphImageServlet.java
similarity index 98%
rename from src/main/java/org/torproject/metrics/web/graphs/GraphImageServlet.java
rename to src/main/java/org/torproject/metrics/web/GraphImageServlet.java
index 473c743..0644fa2 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/GraphImageServlet.java
+++ b/src/main/java/org/torproject/metrics/web/GraphImageServlet.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
+package org.torproject.metrics.web;
import java.io.BufferedOutputStream;
import java.io.IOException;
diff --git a/src/main/java/org/torproject/metrics/web/graphs/GraphParameterChecker.java b/src/main/java/org/torproject/metrics/web/GraphParameterChecker.java
similarity index 98%
rename from src/main/java/org/torproject/metrics/web/graphs/GraphParameterChecker.java
rename to src/main/java/org/torproject/metrics/web/GraphParameterChecker.java
index ed4943b..2168ab5 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/GraphParameterChecker.java
+++ b/src/main/java/org/torproject/metrics/web/GraphParameterChecker.java
@@ -1,10 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
-
-import org.torproject.metrics.web.ContentProvider;
-import org.torproject.metrics.web.Metric;
+package org.torproject.metrics.web;
import java.text.ParseException;
import java.text.SimpleDateFormat;
diff --git a/src/main/java/org/torproject/metrics/web/GraphServlet.java b/src/main/java/org/torproject/metrics/web/GraphServlet.java
index e05e15d..31116b4 100644
--- a/src/main/java/org/torproject/metrics/web/GraphServlet.java
+++ b/src/main/java/org/torproject/metrics/web/GraphServlet.java
@@ -3,9 +3,6 @@
package org.torproject.metrics.web;
-import org.torproject.metrics.web.graphs.Countries;
-import org.torproject.metrics.web.graphs.GraphParameterChecker;
-
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
diff --git a/src/main/java/org/torproject/metrics/web/News.java b/src/main/java/org/torproject/metrics/web/News.java
index 53ca7b4..f21d4e3 100644
--- a/src/main/java/org/torproject/metrics/web/News.java
+++ b/src/main/java/org/torproject/metrics/web/News.java
@@ -3,8 +3,6 @@
package org.torproject.metrics.web;
-import org.torproject.metrics.web.graphs.Countries;
-
import java.util.List;
import java.util.SortedMap;
import java.util.TreeMap;
diff --git a/src/main/java/org/torproject/metrics/web/NewsServlet.java b/src/main/java/org/torproject/metrics/web/NewsServlet.java
index 15717bd..131bd11 100644
--- a/src/main/java/org/torproject/metrics/web/NewsServlet.java
+++ b/src/main/java/org/torproject/metrics/web/NewsServlet.java
@@ -3,8 +3,6 @@
package org.torproject.metrics.web;
-import org.torproject.metrics.web.graphs.Countries;
-
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
diff --git a/src/main/java/org/torproject/metrics/web/graphs/RObject.java b/src/main/java/org/torproject/metrics/web/RObject.java
similarity index 93%
rename from src/main/java/org/torproject/metrics/web/graphs/RObject.java
rename to src/main/java/org/torproject/metrics/web/RObject.java
index 8f5c231..3e38dd0 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/RObject.java
+++ b/src/main/java/org/torproject/metrics/web/RObject.java
@@ -1,7 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
+package org.torproject.metrics.web;
public class RObject {
diff --git a/src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java b/src/main/java/org/torproject/metrics/web/RObjectGenerator.java
similarity index 98%
rename from src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java
rename to src/main/java/org/torproject/metrics/web/RObjectGenerator.java
index 4ea8186..06177bf 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java
+++ b/src/main/java/org/torproject/metrics/web/RObjectGenerator.java
@@ -1,10 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
-
-import org.torproject.metrics.web.ContentProvider;
-import org.torproject.metrics.web.Metric;
+package org.torproject.metrics.web;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
diff --git a/src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java b/src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java
similarity index 98%
rename from src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java
rename to src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java
index c173000..415e5b5 100644
--- a/src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java
+++ b/src/main/java/org/torproject/metrics/web/ResearchStatsServlet.java
@@ -1,7 +1,7 @@
/* Copyright 2013--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.research;
+package org.torproject.metrics.web;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
diff --git a/src/main/java/org/torproject/metrics/web/graphs/TableParameterChecker.java b/src/main/java/org/torproject/metrics/web/TableParameterChecker.java
similarity index 96%
rename from src/main/java/org/torproject/metrics/web/graphs/TableParameterChecker.java
rename to src/main/java/org/torproject/metrics/web/TableParameterChecker.java
index 3a13439..02e9acb 100644
--- a/src/main/java/org/torproject/metrics/web/graphs/TableParameterChecker.java
+++ b/src/main/java/org/torproject/metrics/web/TableParameterChecker.java
@@ -1,10 +1,7 @@
/* Copyright 2011--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.web.graphs;
-
-import org.torproject.metrics.web.ContentProvider;
-import org.torproject.metrics.web.Metric;
+package org.torproject.metrics.web;
import java.text.ParseException;
import java.text.SimpleDateFormat;
diff --git a/src/main/java/org/torproject/metrics/web/TableServlet.java b/src/main/java/org/torproject/metrics/web/TableServlet.java
index e745da0..d37852f 100644
--- a/src/main/java/org/torproject/metrics/web/TableServlet.java
+++ b/src/main/java/org/torproject/metrics/web/TableServlet.java
@@ -3,9 +3,6 @@
package org.torproject.metrics.web;
-import org.torproject.metrics.web.graphs.RObjectGenerator;
-import org.torproject.metrics.web.graphs.TableParameterChecker;
-
import org.apache.commons.lang3.text.StrSubstitutor;
import java.io.IOException;
diff --git a/src/main/resources/web.xml b/src/main/resources/web.xml
index 09ab129..e6e6a69 100644
--- a/src/main/resources/web.xml
+++ b/src/main/resources/web.xml
@@ -86,7 +86,7 @@
<servlet>
<servlet-name>Bubbles</servlet-name>
<servlet-class>
- org.torproject.metrics.web.graphs.BubblesServlet
+ org.torproject.metrics.web.BubblesServlet
</servlet-class>
</servlet>
<servlet-mapping>
@@ -97,7 +97,7 @@
<servlet>
<servlet-name>ResearchStats</servlet-name>
<servlet-class>
- org.torproject.metrics.web.research.ResearchStatsServlet
+ org.torproject.metrics.web.ResearchStatsServlet
</servlet-class>
<init-param>
<param-name>statsDir</param-name>
@@ -114,7 +114,7 @@
<servlet>
<servlet-name>GraphImage</servlet-name>
<servlet-class>
- org.torproject.metrics.web.graphs.GraphImageServlet
+ org.torproject.metrics.web.GraphImageServlet
</servlet-class>
</servlet>
<servlet-mapping>
@@ -408,7 +408,7 @@
<listener>
<listener-class>
- org.torproject.metrics.web.graphs.RObjectGenerator
+ org.torproject.metrics.web.RObjectGenerator
</listener-class>
</listener>
diff --git a/src/test/java/org/torproject/metrics/connbidirect/MainTest.java b/src/test/java/org/torproject/metrics/stats/connbidirect/MainTest.java
similarity index 99%
rename from src/test/java/org/torproject/metrics/connbidirect/MainTest.java
rename to src/test/java/org/torproject/metrics/stats/connbidirect/MainTest.java
index 0f387a6..255cccf 100644
--- a/src/test/java/org/torproject/metrics/connbidirect/MainTest.java
+++ b/src/test/java/org/torproject/metrics/stats/connbidirect/MainTest.java
@@ -1,7 +1,7 @@
/* Copyright 2016--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.connbidirect;
+package org.torproject.metrics.stats.connbidirect;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
diff --git a/src/test/java/org/torproject/metrics/webstats/MainTest.java b/src/test/java/org/torproject/metrics/stats/webstats/MainTest.java
similarity index 98%
rename from src/test/java/org/torproject/metrics/webstats/MainTest.java
rename to src/test/java/org/torproject/metrics/stats/webstats/MainTest.java
index 76268b1..a4e88d1 100644
--- a/src/test/java/org/torproject/metrics/webstats/MainTest.java
+++ b/src/test/java/org/torproject/metrics/stats/webstats/MainTest.java
@@ -1,7 +1,7 @@
/* Copyright 2017--2018 The Tor Project
* See LICENSE for licensing information */
-package org.torproject.metrics.webstats;
+package org.torproject.metrics.stats.webstats;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
1
0

[metrics-web/release] Fix "requests" column in torperf-1.1.csv.
by karsten@torproject.org 30 May '18
by karsten@torproject.org 30 May '18
30 May '18
commit 7dce6a5f6bd36927c0875d2b5f5d02e67698b64a
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Jan 24 17:45:56 2018 +0100
Fix "requests" column in torperf-1.1.csv.
It looks like we implemented the database query for filling the
"requests" column as completed requests. What we really should have
implemented is total requests made, which is what we're doing here.
Fixes #24996.
---
src/main/sql/onionperf/init-onionperf.sql | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/main/sql/onionperf/init-onionperf.sql b/src/main/sql/onionperf/init-onionperf.sql
index eddfe0f..9207bcf 100644
--- a/src/main/sql/onionperf/init-onionperf.sql
+++ b/src/main/sql/onionperf/init-onionperf.sql
@@ -67,8 +67,7 @@ SELECT DATE(start) AS date,
AS timeouts,
COUNT(CASE WHEN NOT didtimeout AND datacomplete >= 1
AND readbytes < filesize THEN 1 ELSE NULL END) AS failures,
- COUNT(CASE WHEN NOT didtimeout AND datacomplete >= 1
- AND readbytes >= filesize then 1 else null end) AS requests
+ COUNT(*) AS requests
FROM measurements
GROUP BY date, filesize, source, server
UNION
@@ -82,8 +81,7 @@ SELECT DATE(start) AS date,
AS timeouts,
COUNT(CASE WHEN NOT didtimeout AND datacomplete >= 1
AND readbytes < filesize THEN 1 ELSE NULL END) AS failures,
- COUNT(CASE WHEN NOT didtimeout AND datacomplete >= 1
- AND readbytes >= filesize then 1 else null end) AS requests
+ COUNT(*) AS requests
FROM measurements
GROUP BY date, filesize, 3, server) sub
ORDER BY date, filesize, source, server;
1
0

30 May '18
commit d9b8b8f998068721e058627c350d2865e5ba42cd
Author: iwakeh <iwakeh(a)torproject.org>
Date: Wed Dec 20 13:06:59 2017 +0000
Added task(s) for running pgTAP tests.
---
build.xml | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/build.xml b/build.xml
index 8e85956..be9db64 100644
--- a/build.xml
+++ b/build.xml
@@ -91,6 +91,46 @@
<patternset refid="web" />
</patternset>
+ <!-- Tasks for database testing. -->
+ <target name="test-all-dbs"
+ depends="init"
+ description="Run all available database pgTAP tests." >
+ <antcall target="test-db">
+ <param name="db2test" value="ipv6servers" />
+ </antcall>
+ <antcall target="test-db">
+ <param name="db2test" value="userstats" />
+ </antcall>
+ </target>
+
+ <target name="test-db" description="A helper task for task test-all-dbs." >
+ <property name="dbtestlog" value="${basedir}/${generated}/${db2test}-sql-test.txt" />
+ <exec executable="psql"
+ dir="${generated}"
+ failonerror="false" >
+ <arg value="--output=${dbtestlog}" />
+ <arg value="--log-file=${basedir}/${generated}/all-dbs-test.log" />
+ <arg value="--quiet" />
+ <arg value="--file=${basedir}/src/test/sql/${db2test}/test-${db2test}.sql" />
+ <arg value="--dbname=${db2test}"/>
+ </exec>
+ <exec executable="grep" outputproperty="dbtestresult"
+ dir="${generated}"
+ failonerror="false" >
+ <arg value="failed" />
+ <arg value="${dbtestlog}" />
+ </exec>
+ <fail message="${dbtestresult} see ${dbtestlog} for details." >
+ <condition>
+ <not>
+ <length string="${dbtestresult}"
+ length="0" />
+ </not>
+ </condition>
+ </fail>
+ <echo message="Tests for ${db2test} passed." />
+ </target>
+
<!-- Create a .war file for deployment. -->
<target name="war"
depends="submoduleupdate,compile">
1
0