tor-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- 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
January 2017
- 22 participants
- 1797 discussions
commit 8c7ecc5f5bbbfe902f646ba24ac9bec6f59d6445
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Jan 10 12:31:16 2017 +0100
Update copyright.
---
src/main/java/org/torproject/onionoo/cron/Main.java | 2 +-
src/main/java/org/torproject/onionoo/docs/BandwidthDocument.java | 2 +-
src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/ClientsDocument.java | 2 +-
src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java | 2 +-
src/main/java/org/torproject/onionoo/docs/ClientsHistory.java | 2 +-
src/main/java/org/torproject/onionoo/docs/ClientsStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java | 2 +-
src/main/java/org/torproject/onionoo/docs/DetailsDocument.java | 2 +-
src/main/java/org/torproject/onionoo/docs/DetailsStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/Document.java | 2 +-
src/main/java/org/torproject/onionoo/docs/DocumentStore.java | 2 +-
src/main/java/org/torproject/onionoo/docs/DocumentStoreFactory.java | 2 +-
src/main/java/org/torproject/onionoo/docs/GraphHistory.java | 2 +-
src/main/java/org/torproject/onionoo/docs/NodeStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/SummaryDocument.java | 2 +-
src/main/java/org/torproject/onionoo/docs/UpdateStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/UptimeDocument.java | 2 +-
src/main/java/org/torproject/onionoo/docs/UptimeHistory.java | 2 +-
src/main/java/org/torproject/onionoo/docs/UptimeStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/WeightsDocument.java | 2 +-
src/main/java/org/torproject/onionoo/docs/WeightsStatus.java | 2 +-
src/main/java/org/torproject/onionoo/server/Counter.java | 2 +-
.../java/org/torproject/onionoo/server/HttpServletRequestWrapper.java | 2 +-
.../java/org/torproject/onionoo/server/HttpServletResponseWrapper.java | 2 +-
src/main/java/org/torproject/onionoo/server/IntegerDistribution.java | 2 +-
src/main/java/org/torproject/onionoo/server/MostFrequentString.java | 2 +-
src/main/java/org/torproject/onionoo/server/NodeIndex.java | 2 +-
src/main/java/org/torproject/onionoo/server/NodeIndexer.java | 2 +-
src/main/java/org/torproject/onionoo/server/NodeIndexerFactory.java | 2 +-
src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java | 2 +-
src/main/java/org/torproject/onionoo/server/RequestHandler.java | 2 +-
src/main/java/org/torproject/onionoo/server/ResourceServlet.java | 2 +-
src/main/java/org/torproject/onionoo/server/ResponseBuilder.java | 2 +-
src/main/java/org/torproject/onionoo/server/ServerMain.java | 2 +-
.../java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java | 2 +-
src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorDownloader.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorListener.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorSource.java | 2 +-
.../java/org/torproject/onionoo/updater/DescriptorSourceFactory.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorType.java | 2 +-
src/main/java/org/torproject/onionoo/updater/LookupResult.java | 2 +-
src/main/java/org/torproject/onionoo/updater/LookupService.java | 2 +-
.../java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java | 2 +-
src/main/java/org/torproject/onionoo/updater/RdnsLookupRequest.java | 2 +-
src/main/java/org/torproject/onionoo/updater/RdnsLookupWorker.java | 2 +-
.../java/org/torproject/onionoo/updater/ReverseDomainNameResolver.java | 2 +-
src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java | 2 +-
src/main/java/org/torproject/onionoo/updater/StatusUpdater.java | 2 +-
src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java | 2 +-
src/main/java/org/torproject/onionoo/updater/WeightsStatusUpdater.java | 2 +-
src/main/java/org/torproject/onionoo/util/FormattingUtils.java | 2 +-
src/main/java/org/torproject/onionoo/util/Time.java | 2 +-
src/main/java/org/torproject/onionoo/util/TimeFactory.java | 2 +-
.../java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java | 2 +-
src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java | 2 +-
src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java | 2 +-
src/main/java/org/torproject/onionoo/writer/DocumentWriter.java | 2 +-
src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java | 2 +-
src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java | 2 +-
src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java | 2 +-
src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java | 2 +-
src/main/resources/bootstrap-development.sh | 2 +-
src/test/java/org/torproject/onionoo/docs/BandwidthStatusTest.java | 2 +-
src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java | 2 +-
src/test/java/org/torproject/onionoo/docs/NodeStatusTest.java | 2 +-
src/test/java/org/torproject/onionoo/docs/SummaryDocumentTest.java | 2 +-
src/test/java/org/torproject/onionoo/docs/UptimeStatusTest.java | 2 +-
src/test/java/org/torproject/onionoo/docs/WeightsStatusTest.java | 2 +-
src/test/java/org/torproject/onionoo/server/PerformanceMetricsTest.java | 2 +-
src/test/java/org/torproject/onionoo/server/ResourceServletTest.java | 2 +-
src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java | 2 +-
src/test/java/org/torproject/onionoo/updater/DummyConsensus.java | 2 +-
src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java | 2 +-
src/test/java/org/torproject/onionoo/updater/DummyStatusEntry.java | 2 +-
src/test/java/org/torproject/onionoo/updater/LookupServiceTest.java | 2 +-
.../java/org/torproject/onionoo/updater/UptimeStatusUpdaterTest.java | 2 +-
src/test/java/org/torproject/onionoo/util/DummyTime.java | 2 +-
.../java/org/torproject/onionoo/writer/UptimeDocumentWriterTest.java | 2 +-
82 files changed, 82 insertions(+), 82 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/cron/Main.java b/src/main/java/org/torproject/onionoo/cron/Main.java
index 5b80934..685da35 100644
--- a/src/main/java/org/torproject/onionoo/cron/Main.java
+++ b/src/main/java/org/torproject/onionoo/cron/Main.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.cron;
diff --git a/src/main/java/org/torproject/onionoo/docs/BandwidthDocument.java b/src/main/java/org/torproject/onionoo/docs/BandwidthDocument.java
index 575b8a0..38f5f62 100644
--- a/src/main/java/org/torproject/onionoo/docs/BandwidthDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/BandwidthDocument.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java b/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
index ac7085f..580bfbd 100644
--- a/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsDocument.java b/src/main/java/org/torproject/onionoo/docs/ClientsDocument.java
index f8b0c84..2cc69c0 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsDocument.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
index 0826887..df538a9 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
index e99c3ef..e1f0353 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java b/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
index 45466ae..55bdc7b 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java b/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java
index 1dc40c3..9721612 100644
--- a/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java
+++ b/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java b/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
index a9257af..97fc703 100644
--- a/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java b/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
index 7258054..bad3964 100644
--- a/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/Document.java b/src/main/java/org/torproject/onionoo/docs/Document.java
index f2f9714..355a543 100644
--- a/src/main/java/org/torproject/onionoo/docs/Document.java
+++ b/src/main/java/org/torproject/onionoo/docs/Document.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
index e1be777..08fb984 100644
--- a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
+++ b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/DocumentStoreFactory.java b/src/main/java/org/torproject/onionoo/docs/DocumentStoreFactory.java
index 455a27f..8764d69 100644
--- a/src/main/java/org/torproject/onionoo/docs/DocumentStoreFactory.java
+++ b/src/main/java/org/torproject/onionoo/docs/DocumentStoreFactory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/GraphHistory.java b/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
index 5dde6a7..7d41780 100644
--- a/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index 7d595e4..a2b44f8 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java b/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
index ce8a22a..b7f62ad 100644
--- a/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java b/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java
index 4223337..32461fc 100644
--- a/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeDocument.java b/src/main/java/org/torproject/onionoo/docs/UptimeDocument.java
index 98884b6..c88b9ff 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeDocument.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
index 3cd0a0e..bcf0c6e 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java b/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
index b725acc..286b32f 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/WeightsDocument.java b/src/main/java/org/torproject/onionoo/docs/WeightsDocument.java
index 9b1c8ef..6d5c6a6 100644
--- a/src/main/java/org/torproject/onionoo/docs/WeightsDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/WeightsDocument.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java b/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
index 50b8b35..5c18dee 100644
--- a/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/main/java/org/torproject/onionoo/server/Counter.java b/src/main/java/org/torproject/onionoo/server/Counter.java
index 655a56c..6c53587 100644
--- a/src/main/java/org/torproject/onionoo/server/Counter.java
+++ b/src/main/java/org/torproject/onionoo/server/Counter.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/HttpServletRequestWrapper.java b/src/main/java/org/torproject/onionoo/server/HttpServletRequestWrapper.java
index e819a1a..8da8821 100644
--- a/src/main/java/org/torproject/onionoo/server/HttpServletRequestWrapper.java
+++ b/src/main/java/org/torproject/onionoo/server/HttpServletRequestWrapper.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java b/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java
index d804c3a..c591106 100644
--- a/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java
+++ b/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/IntegerDistribution.java b/src/main/java/org/torproject/onionoo/server/IntegerDistribution.java
index c9e3a29..adc3db2 100644
--- a/src/main/java/org/torproject/onionoo/server/IntegerDistribution.java
+++ b/src/main/java/org/torproject/onionoo/server/IntegerDistribution.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/MostFrequentString.java b/src/main/java/org/torproject/onionoo/server/MostFrequentString.java
index 12b5e04..3e8697e 100644
--- a/src/main/java/org/torproject/onionoo/server/MostFrequentString.java
+++ b/src/main/java/org/torproject/onionoo/server/MostFrequentString.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndex.java b/src/main/java/org/torproject/onionoo/server/NodeIndex.java
index 7871690..9f9cf74 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndex.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndex.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
index 99d1aee..b470323 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndexerFactory.java b/src/main/java/org/torproject/onionoo/server/NodeIndexerFactory.java
index b938c9e..5d93bf4 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndexerFactory.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndexerFactory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java b/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java
index 7a621cf..1f52397 100644
--- a/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java
+++ b/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/RequestHandler.java b/src/main/java/org/torproject/onionoo/server/RequestHandler.java
index 49b3b94..32af238 100644
--- a/src/main/java/org/torproject/onionoo/server/RequestHandler.java
+++ b/src/main/java/org/torproject/onionoo/server/RequestHandler.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
index c1c5757..0e4c68f 100644
--- a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
+++ b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java b/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java
index cd0c633..4c13334 100644
--- a/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java
+++ b/src/main/java/org/torproject/onionoo/server/ResponseBuilder.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/server/ServerMain.java b/src/main/java/org/torproject/onionoo/server/ServerMain.java
index fd4dc90..d712ba8 100644
--- a/src/main/java/org/torproject/onionoo/server/ServerMain.java
+++ b/src/main/java/org/torproject/onionoo/server/ServerMain.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java
index 3aa3dd1..d750358 100644
--- a/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
index 28b8ea7..20971f8 100644
--- a/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorDownloader.java b/src/main/java/org/torproject/onionoo/updater/DescriptorDownloader.java
index 5822b77..d51bc20 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorDownloader.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorDownloader.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java b/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java
index 28eaec7..4cf7d81 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java b/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java
index 328fd6f..f655d19 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java b/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java
index c17d498..27a046e 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java b/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
index c251142..79fe53b 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorSourceFactory.java b/src/main/java/org/torproject/onionoo/updater/DescriptorSourceFactory.java
index 4974488..c1d093b 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorSourceFactory.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorSourceFactory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorType.java b/src/main/java/org/torproject/onionoo/updater/DescriptorType.java
index b7b6b8e..f9a266e 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorType.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorType.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/LookupResult.java b/src/main/java/org/torproject/onionoo/updater/LookupResult.java
index 930e2fb..94297c0 100644
--- a/src/main/java/org/torproject/onionoo/updater/LookupResult.java
+++ b/src/main/java/org/torproject/onionoo/updater/LookupResult.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/LookupService.java b/src/main/java/org/torproject/onionoo/updater/LookupService.java
index ec63751..fcef0bc 100644
--- a/src/main/java/org/torproject/onionoo/updater/LookupService.java
+++ b/src/main/java/org/torproject/onionoo/updater/LookupService.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
index d0e4529..202524d 100644
--- a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/RdnsLookupRequest.java b/src/main/java/org/torproject/onionoo/updater/RdnsLookupRequest.java
index 75ad315..3f2f561 100644
--- a/src/main/java/org/torproject/onionoo/updater/RdnsLookupRequest.java
+++ b/src/main/java/org/torproject/onionoo/updater/RdnsLookupRequest.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/RdnsLookupWorker.java b/src/main/java/org/torproject/onionoo/updater/RdnsLookupWorker.java
index 165507b..e490075 100644
--- a/src/main/java/org/torproject/onionoo/updater/RdnsLookupWorker.java
+++ b/src/main/java/org/torproject/onionoo/updater/RdnsLookupWorker.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/ReverseDomainNameResolver.java b/src/main/java/org/torproject/onionoo/updater/ReverseDomainNameResolver.java
index 3214c74..3c26975 100644
--- a/src/main/java/org/torproject/onionoo/updater/ReverseDomainNameResolver.java
+++ b/src/main/java/org/torproject/onionoo/updater/ReverseDomainNameResolver.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java b/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java
index 7aa1a5e..6c55c96 100644
--- a/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java
+++ b/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java
index f8474f4..bc5b610 100644
--- a/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
index d4951b7..fb8139c 100644
--- a/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/updater/WeightsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/WeightsStatusUpdater.java
index 2442a00..7ce1863 100644
--- a/src/main/java/org/torproject/onionoo/updater/WeightsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/WeightsStatusUpdater.java
@@ -1,4 +1,4 @@
-/* Copyright 2012--2016 The Tor Project
+/* Copyright 2012--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/main/java/org/torproject/onionoo/util/FormattingUtils.java b/src/main/java/org/torproject/onionoo/util/FormattingUtils.java
index fd83cf8..1c3aa55 100644
--- a/src/main/java/org/torproject/onionoo/util/FormattingUtils.java
+++ b/src/main/java/org/torproject/onionoo/util/FormattingUtils.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.util;
diff --git a/src/main/java/org/torproject/onionoo/util/Time.java b/src/main/java/org/torproject/onionoo/util/Time.java
index 45c2d7b..f06ceb6 100644
--- a/src/main/java/org/torproject/onionoo/util/Time.java
+++ b/src/main/java/org/torproject/onionoo/util/Time.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.util;
diff --git a/src/main/java/org/torproject/onionoo/util/TimeFactory.java b/src/main/java/org/torproject/onionoo/util/TimeFactory.java
index f0c8a98..68dcc98 100644
--- a/src/main/java/org/torproject/onionoo/util/TimeFactory.java
+++ b/src/main/java/org/torproject/onionoo/util/TimeFactory.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.util;
diff --git a/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
index 25bca5e..84e42ce 100644
--- a/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2016 The Tor Project
+/* Copyright 2011--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
index 00389d0..868d5c1 100644
--- a/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
index 1c515e8..5e3e175 100644
--- a/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java
index 3fe63b9..f68e962 100644
--- a/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java b/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java
index d9d1c47..9abc669 100644
--- a/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java
+++ b/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java
index e9bb8f6..24c7e0c 100644
--- a/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
index 502c351..42f5661 100644
--- a/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
index 326fbda..35ef3ae 100644
--- a/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
@@ -1,4 +1,4 @@
-/* Copyright 2012--2016 The Tor Project
+/* Copyright 2012--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
diff --git a/src/main/resources/bootstrap-development.sh b/src/main/resources/bootstrap-development.sh
index 33a1a50..28fb975 100755
--- a/src/main/resources/bootstrap-development.sh
+++ b/src/main/resources/bootstrap-development.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2016 The Tor Project
+# Copyright 2016--2017 The Tor Project
# See LICENSE for licensing information
#
# Use for submodule initialization and checkout.
diff --git a/src/test/java/org/torproject/onionoo/docs/BandwidthStatusTest.java b/src/test/java/org/torproject/onionoo/docs/BandwidthStatusTest.java
index 84bd116..e327b64 100644
--- a/src/test/java/org/torproject/onionoo/docs/BandwidthStatusTest.java
+++ b/src/test/java/org/torproject/onionoo/docs/BandwidthStatusTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java b/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java
index bf4acb0..3c80cfa 100644
--- a/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java
+++ b/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java
@@ -1,4 +1,4 @@
-/* Copyright 2015--2016 The Tor Project
+/* Copyright 2015--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/test/java/org/torproject/onionoo/docs/NodeStatusTest.java b/src/test/java/org/torproject/onionoo/docs/NodeStatusTest.java
index f00ce0a..2e7c3a3 100644
--- a/src/test/java/org/torproject/onionoo/docs/NodeStatusTest.java
+++ b/src/test/java/org/torproject/onionoo/docs/NodeStatusTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2015--2016 The Tor Project
+/* Copyright 2015--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/test/java/org/torproject/onionoo/docs/SummaryDocumentTest.java b/src/test/java/org/torproject/onionoo/docs/SummaryDocumentTest.java
index 1ee150f..359fa03 100644
--- a/src/test/java/org/torproject/onionoo/docs/SummaryDocumentTest.java
+++ b/src/test/java/org/torproject/onionoo/docs/SummaryDocumentTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2015--2016 The Tor Project
+/* Copyright 2015--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/test/java/org/torproject/onionoo/docs/UptimeStatusTest.java b/src/test/java/org/torproject/onionoo/docs/UptimeStatusTest.java
index 1a8066d..b5fa157 100644
--- a/src/test/java/org/torproject/onionoo/docs/UptimeStatusTest.java
+++ b/src/test/java/org/torproject/onionoo/docs/UptimeStatusTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/test/java/org/torproject/onionoo/docs/WeightsStatusTest.java b/src/test/java/org/torproject/onionoo/docs/WeightsStatusTest.java
index 3dc82f8..b4a06d7 100644
--- a/src/test/java/org/torproject/onionoo/docs/WeightsStatusTest.java
+++ b/src/test/java/org/torproject/onionoo/docs/WeightsStatusTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Tor Project
+/* Copyright 2016--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.docs;
diff --git a/src/test/java/org/torproject/onionoo/server/PerformanceMetricsTest.java b/src/test/java/org/torproject/onionoo/server/PerformanceMetricsTest.java
index c2c781b..f804409 100644
--- a/src/test/java/org/torproject/onionoo/server/PerformanceMetricsTest.java
+++ b/src/test/java/org/torproject/onionoo/server/PerformanceMetricsTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java b/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java
index 93c3a34..9d47bd2 100644
--- a/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java
+++ b/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.server;
diff --git a/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java b/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java
index 1e6990f..46f6371 100644
--- a/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java
+++ b/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java b/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java
index 246916e..54d0161 100644
--- a/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java
+++ b/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java b/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java
index 878ef43..990b011 100644
--- a/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java
+++ b/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/test/java/org/torproject/onionoo/updater/DummyStatusEntry.java b/src/test/java/org/torproject/onionoo/updater/DummyStatusEntry.java
index c60bded..da583b8 100644
--- a/src/test/java/org/torproject/onionoo/updater/DummyStatusEntry.java
+++ b/src/test/java/org/torproject/onionoo/updater/DummyStatusEntry.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/test/java/org/torproject/onionoo/updater/LookupServiceTest.java b/src/test/java/org/torproject/onionoo/updater/LookupServiceTest.java
index 7793e56..bcd8571 100644
--- a/src/test/java/org/torproject/onionoo/updater/LookupServiceTest.java
+++ b/src/test/java/org/torproject/onionoo/updater/LookupServiceTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2013--2016 The Tor Project
+/* Copyright 2013--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/test/java/org/torproject/onionoo/updater/UptimeStatusUpdaterTest.java b/src/test/java/org/torproject/onionoo/updater/UptimeStatusUpdaterTest.java
index 37a1b8e..d890e2c 100644
--- a/src/test/java/org/torproject/onionoo/updater/UptimeStatusUpdaterTest.java
+++ b/src/test/java/org/torproject/onionoo/updater/UptimeStatusUpdaterTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
diff --git a/src/test/java/org/torproject/onionoo/util/DummyTime.java b/src/test/java/org/torproject/onionoo/util/DummyTime.java
index eacc200..54b419d 100644
--- a/src/test/java/org/torproject/onionoo/util/DummyTime.java
+++ b/src/test/java/org/torproject/onionoo/util/DummyTime.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.util;
diff --git a/src/test/java/org/torproject/onionoo/writer/UptimeDocumentWriterTest.java b/src/test/java/org/torproject/onionoo/writer/UptimeDocumentWriterTest.java
index 3661010..0c19a04 100644
--- a/src/test/java/org/torproject/onionoo/writer/UptimeDocumentWriterTest.java
+++ b/src/test/java/org/torproject/onionoo/writer/UptimeDocumentWriterTest.java
@@ -1,4 +1,4 @@
-/* Copyright 2014--2016 The Tor Project
+/* Copyright 2014--2017 The Tor Project
* See LICENSE for licensing information */
package org.torproject.onionoo.writer;
1
0
commit 313c935af8d9edc6d0160378d7574b8e7c3d1526
Author: hiromipaw <hiro(a)torproject.org>
Date: Tue Jan 10 12:33:23 2017 +0100
Fix bullet points and wording
---
about/en/jobs-comm-director.wml | 56 +++++++++++++++++++----------------------
1 file changed, 26 insertions(+), 30 deletions(-)
diff --git a/about/en/jobs-comm-director.wml b/about/en/jobs-comm-director.wml
index 8ad4d51..aeccac9 100644
--- a/about/en/jobs-comm-director.wml
+++ b/about/en/jobs-comm-director.wml
@@ -35,59 +35,55 @@ communications professional.
<h2>
Responsibilities:
</h2>
-<p>
+<ul>
+<li>
Represent the Tor Project to the press. Write press releases, handle
press calls, and distribute media calls to appropriate members of
the Tor Project community.
-</p>
-<p>
+</li>
+<li>
Train staff and community members on media and coach/prep/debrief
them for specific media calls.
-</p>
-<p>
+</li>
+<li>
Manage the Tor Project's social media presence. Develop the Tor
Project's social media strategy and oversee staff and volunteers who
contribute to our social media efforts.
-</p>
-<p>
+</li>
+<li>
Publish the Tor Project's weekly newsletter, Tor Weekly News (TWN).
-</p>
-<p>
+</li>
+<li>
Translate technical software releases posted to our blog so the
general public can better understand the Tor Project’s work.
-</p>
-<p>
+</li>
+<li>
Maintain the press section of the <a href="http://torproject.org/">torproject.org</a>
website. Collect, organize and post the Tor Project's press clippings to the website.
Develop and distribute an organizational press kit.
-</p>
-<p>
+</li>
+<li>
Manage the Tor Project's media contacts.
-</p>
-<p>
+</li>
+<li>
Help to write and edit content for the Tor Project's upcoming
website reorganization. Be a key member of the reorganization team.
-</p>
-<p>
+</li>
+<li>
Write and update the Tor Project's one-pagers and other information
pieces distributed at conferences and talks.
-</p>
-<p>
+</li>
+<li>
Coordinate speaking opportunities and conferences for Tor Project
staff and community members.
-</p>
-<p>
+</li>
+<li>
Maintain the Tor Project's website calendar of speaking engagements.
-</p>
-<p>
+</li>
+<li>
General writing and editing responsibilities as required.
-</p>
-<p>
-This is a full-time remote position. Flexible salary, depending on
-experience. Experience and/or passion for working with open source
-communities and/or a commitment to Internet civil liberties are added
-pluses for any candidate applying for this position!
-</p>
+</li>
+</ul>
<h2>
Qualifications:
</h2>
1
0
commit dab370f87ce9f7eb098fa87a17dc147e873f4576
Author: hiromipaw <hiro(a)torproject.org>
Date: Tue Jan 10 12:21:15 2017 +0100
Remove stars
---
about/en/jobs-comm-director.wml | 54 ++++++++++++++++++++---------------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/about/en/jobs-comm-director.wml b/about/en/jobs-comm-director.wml
index e74ec5e..8ad4d51 100644
--- a/about/en/jobs-comm-director.wml
+++ b/about/en/jobs-comm-director.wml
@@ -36,51 +36,51 @@ communications professional.
Responsibilities:
</h2>
<p>
-* Represent the Tor Project to the press. Write press releases, handle
+Represent the Tor Project to the press. Write press releases, handle
press calls, and distribute media calls to appropriate members of
the Tor Project community.
</p>
<p>
-* Train staff and community members on media and coach/prep/debrief
+Train staff and community members on media and coach/prep/debrief
them for specific media calls.
</p>
<p>
-* Manage the Tor Project's social media presence. Develop the Tor
+Manage the Tor Project's social media presence. Develop the Tor
Project's social media strategy and oversee staff and volunteers who
contribute to our social media efforts.
</p>
<p>
-* Publish the Tor Project's weekly newsletter, Tor Weekly News (TWN).
+Publish the Tor Project's weekly newsletter, Tor Weekly News (TWN).
</p>
<p>
-* Translate technical software releases posted to our blog so the
+Translate technical software releases posted to our blog so the
general public can better understand the Tor Project’s work.
</p>
<p>
-* Maintain the press section of the <a href="http://torproject.org/">torproject.org</a>
+Maintain the press section of the <a href="http://torproject.org/">torproject.org</a>
website. Collect, organize and post the Tor Project's press clippings to the website.
Develop and distribute an organizational press kit.
</p>
<p>
-* Manage the Tor Project's media contacts.
+Manage the Tor Project's media contacts.
</p>
<p>
-* Help to write and edit content for the Tor Project's upcoming
+Help to write and edit content for the Tor Project's upcoming
website reorganization. Be a key member of the reorganization team.
</p>
<p>
-* Write and update the Tor Project's one-pagers and other information
+Write and update the Tor Project's one-pagers and other information
pieces distributed at conferences and talks.
</p>
<p>
-* Coordinate speaking opportunities and conferences for Tor Project
+Coordinate speaking opportunities and conferences for Tor Project
staff and community members.
</p>
<p>
-* Maintain the Tor Project's website calendar of speaking engagements.
+Maintain the Tor Project's website calendar of speaking engagements.
</p>
<p>
-* General writing and editing responsibilities as required.
+General writing and editing responsibilities as required.
</p>
<p>
This is a full-time remote position. Flexible salary, depending on
@@ -92,34 +92,34 @@ pluses for any candidate applying for this position!
Qualifications:
</h2>
<ul>
-<li>* Excellent verbal, written, and editing skills in English; fluency in other
+<li>Excellent verbal, written, and editing skills in English; fluency in other
languages is a plus.</li>
-<li>* Commitment to helping Tor Project developers be regarded as respected global
+<li>Commitment to helping Tor Project developers be regarded as respected global
resources for information about open source anonymity and privacy technologies.</li>
-<li>* Demonstrated skill and comfort in proactively building relationships with
+<li>Demonstrated skill and comfort in proactively building relationships with
top tier reporters and editors, and in positioning subject matter with the media
to achieve high-impact placements.</li>
-<li>* Demonstrated experience with complex and high profile social media engagement.</li>
-<li>* Comfortable with highly technical topics and ability to explain them clearly
+<li>Demonstrated experience with complex and high profile social media engagement.</li>
+<li>Comfortable with highly technical topics and ability to explain them clearly
and accurately to non-technical audiences.</li>
-<li>* Knowledge of and appreciation for the free and open source software movement.</li>
-<li>* Demonstrated experience with issues management, including media crisis management,
+<li>Knowledge of and appreciation for the free and open source software movement.</li>
+<li>Demonstrated experience with issues management, including media crisis management,
and driving more advantageous coverage of the organization, its projects, and its people.</li>
-<li>* Strong generalist understanding of the basic mechanics of how the
+<li>Strong generalist understanding of the basic mechanics of how the
Internet works, as well as issues related to privacy, security,
censorship, and surveillance.</li>
-<li>* Experience with, or willingness to learn how to use, communications
+<li>Experience with, or willingness to learn how to use, communications
and collaboration technologies such as PGP, IRC, Jitsi, WordPress,
and etherpads.</li>
-<li>* Hard working and highly organized with superior attention to detail.</li>
-<li>* Highly collaborative with experience working with and as part of
+<li>Hard working and highly organized with superior attention to detail.</li>
+<li>Highly collaborative with experience working with and as part of
remote teams.</li>
-<li>* Self-starter who thrives on working independently with a dispersed
+<li>Self-starter who thrives on working independently with a dispersed
workforce. Experience working or living outside the United States is
a plus.</li>
-<li>* Fundraising and fundraising communications experience is a plus.</li>
-<li>* Willingness to travel to international meetings twice a year.</li>
-<li>* Excellent social skills and a sense of humor.</li>
+<li>Fundraising and fundraising communications experience is a plus.</li>
+<li>Willingness to travel to international meetings twice a year.</li>
+<li>Excellent social skills and a sense of humor.</li>
</ul>
<p>
1
0
commit 3f40c55021624c20974c46071130d32597b0e4f6
Author: hiromipaw <hiro(a)torproject.org>
Date: Tue Jan 10 10:58:08 2017 +0100
Add comm dir job posting
---
about/en/jobs-comm-director.wml | 174 ++++++++++++++++++++++++++++++++++++++++
about/en/jobs.wml | 4 +-
2 files changed, 176 insertions(+), 2 deletions(-)
diff --git a/about/en/jobs-comm-director.wml b/about/en/jobs-comm-director.wml
new file mode 100644
index 0000000..e74ec5e
--- /dev/null
+++ b/about/en/jobs-comm-director.wml
@@ -0,0 +1,174 @@
+## translation metadata
+# Revision: $Revision$
+# Translation-Priority: 3-low
+
+#include "head.wmi" TITLE="Tor Project: Jobs (core developer)" CHARSET="UTF-8"
+<div id="content" class="clearfix">
+ <div id="breadcrumbs">
+ <a href="<page index>">Home » </a>
+ <a href="<page about/overview>">About » </a>
+ <a href="<page about/jobs>">Jobs</a>
+ </div>
+ <div id="maincol">
+<h1>Internet Freedom Nonprofit Seeks Experienced Communications Director</h1>
+<h2>(Posted January 10, 2017)</h2>
+
+<p>
+The Tor Project, Inc., a 501(c)(3) nonprofit organization that provides technical
+infrastructure for privacy protection over the Internet, is seeking a Communications
+Director to help us tell the world about our important work.
+The ideal candidate will have at least five years of experience talking with the
+press and leading social media campaigns.
+The ability to explain technical concepts to non-technical audiences is essential.
+</p>
+<p>
+This senior level position will report directly to the Executive
+Director and will be part of the organization's leadership team. The
+Communications Director will set and guide the strategy for all
+communications and public relations messages to consistently articulate
+the Tor Project's mission. Tor software is built by a mix of paid staff
+and volunteers. This job includes working closely with this diverse,
+international community of people who make Tor and related software
+products. This is a hands-on position for a highly skilled
+communications professional.
+</p>
+<h2>
+Responsibilities:
+</h2>
+<p>
+* Represent the Tor Project to the press. Write press releases, handle
+press calls, and distribute media calls to appropriate members of
+the Tor Project community.
+</p>
+<p>
+* Train staff and community members on media and coach/prep/debrief
+them for specific media calls.
+</p>
+<p>
+* Manage the Tor Project's social media presence. Develop the Tor
+Project's social media strategy and oversee staff and volunteers who
+contribute to our social media efforts.
+</p>
+<p>
+* Publish the Tor Project's weekly newsletter, Tor Weekly News (TWN).
+</p>
+<p>
+* Translate technical software releases posted to our blog so the
+general public can better understand the Tor Project’s work.
+</p>
+<p>
+* Maintain the press section of the <a href="http://torproject.org/">torproject.org</a>
+website. Collect, organize and post the Tor Project's press clippings to the website.
+Develop and distribute an organizational press kit.
+</p>
+<p>
+* Manage the Tor Project's media contacts.
+</p>
+<p>
+* Help to write and edit content for the Tor Project's upcoming
+website reorganization. Be a key member of the reorganization team.
+</p>
+<p>
+* Write and update the Tor Project's one-pagers and other information
+pieces distributed at conferences and talks.
+</p>
+<p>
+* Coordinate speaking opportunities and conferences for Tor Project
+staff and community members.
+</p>
+<p>
+* Maintain the Tor Project's website calendar of speaking engagements.
+</p>
+<p>
+* General writing and editing responsibilities as required.
+</p>
+<p>
+This is a full-time remote position. Flexible salary, depending on
+experience. Experience and/or passion for working with open source
+communities and/or a commitment to Internet civil liberties are added
+pluses for any candidate applying for this position!
+</p>
+<h2>
+Qualifications:
+</h2>
+<ul>
+<li>* Excellent verbal, written, and editing skills in English; fluency in other
+languages is a plus.</li>
+<li>* Commitment to helping Tor Project developers be regarded as respected global
+resources for information about open source anonymity and privacy technologies.</li>
+<li>* Demonstrated skill and comfort in proactively building relationships with
+top tier reporters and editors, and in positioning subject matter with the media
+to achieve high-impact placements.</li>
+<li>* Demonstrated experience with complex and high profile social media engagement.</li>
+<li>* Comfortable with highly technical topics and ability to explain them clearly
+and accurately to non-technical audiences.</li>
+<li>* Knowledge of and appreciation for the free and open source software movement.</li>
+<li>* Demonstrated experience with issues management, including media crisis management,
+and driving more advantageous coverage of the organization, its projects, and its people.</li>
+<li>* Strong generalist understanding of the basic mechanics of how the
+Internet works, as well as issues related to privacy, security,
+censorship, and surveillance.</li>
+<li>* Experience with, or willingness to learn how to use, communications
+and collaboration technologies such as PGP, IRC, Jitsi, WordPress,
+and etherpads.</li>
+<li>* Hard working and highly organized with superior attention to detail.</li>
+<li>* Highly collaborative with experience working with and as part of
+remote teams.</li>
+<li>* Self-starter who thrives on working independently with a dispersed
+workforce. Experience working or living outside the United States is
+a plus.</li>
+<li>* Fundraising and fundraising communications experience is a plus.</li>
+<li>* Willingness to travel to international meetings twice a year.</li>
+<li>* Excellent social skills and a sense of humor.</li>
+</ul>
+
+<p>
+The successful candidate will probably hold a Bachelor's degree in
+journalism, communications, marketing, public relations or a closely
+related field. The ideal candidate will be energetic, unflappable and
+flexible, and will thrive in a highly-technical collaborative
+environment.
+</p>
+<p>
+The Tor Project's workforce is smart and committed. Experience working
+with open source communities and/or a dedication to Internet civil
+liberties are added pluses. The Tor Project currently has a paid and
+contract staff of around 25 developers and operational support staff,
+plus many thousands of volunteers who contribute to our work. The Tor
+Project is funded in part by government research and development grants,
+and in part by individual, foundation and corporate donations.
+</p>
+<p>
+Flexible salary, depending on experience. The Tor Project has a
+competitive benefits package, including a generous PTO policy; 13 paid
+holidays per year (including the week between Christmas and New Year's,
+when the office is closed); health, vision, dental, disability, and life
+insurance paid in full for employee; flexible work schedule; and
+occasional travel opportunities.
+</p>
+<p>
+This is a full-time position. The Tor Project’s main office is in
+Seattle, and we’d be delighted to supply a desk for the Communications
+Director there, however, this job can be done remotely. Knowledge of
+media and press contacts within the United States is essential.
+</p>
+<p>
+To apply, send a cover letter and your resume to <a href="mailto:hr@torproject.org">hr(a)torproject.org</a>
+ with the subject "Communications Director."
+Tell us why you think you're the right person for this job, and please
+include links to writing samples. No phone calls please!
+</p>
+<p>
+The Tor Project, Inc., is an equal opportunity, affirmative action
+employer.
+</p>
+ </div>
+ <!-- END MAINCOL -->
+ <div id = "sidecol">
+#include "side.wmi"
+#include "info.wmi"
+ </div>
+ <!-- END SIDECOL -->
+</div>
+<!-- END CONTENT -->
+#include <foot.wmi>
diff --git a/about/en/jobs.wml b/about/en/jobs.wml
index 078771e..bf7e38e 100644
--- a/about/en/jobs.wml
+++ b/about/en/jobs.wml
@@ -19,8 +19,9 @@
<p>Specifically, we're looking for the following people currently:
</p>
<ul>
+<li><a href="<page about/jobs-comm-director>">Communications Director</a></li>
#<li><a href="<page about/jobs-ooni-ux-designer>">UX Designer - OONI</a></li>
-<li><a href="<page about/jobs-coredev>">Core Developer</a></li>
+#<li><a href="<page about/jobs-coredev>">Core Developer</a></li>
#<li><a href="<page about/jobs-editor>">Writer/Editor</a></li>
#<li><a href="<page about/jobs-admin-assistant>">Administrative Assistant</a></li>
</ul>
@@ -65,4 +66,3 @@ About the company:<br>
</div>
<!-- END CONTENT -->
#include <foot.wmi>
-
1
0
[sandboxed-tor-browser/master] fixup! Bug 21184: Do a better job of killing/cleaning up bwrap children.
by yawning@torproject.org 10 Jan '17
by yawning@torproject.org 10 Jan '17
10 Jan '17
commit c7b559f6b7f216ed968ff703773688c826c14cd7
Author: Yawning Angel <yawning(a)schwanenlied.me>
Date: Tue Jan 10 08:07:48 2017 +0000
fixup! Bug 21184: Do a better job of killing/cleaning up bwrap children.
---
src/cmd/sandboxed-tor-browser/internal/tor/tor.go | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/cmd/sandboxed-tor-browser/internal/tor/tor.go b/src/cmd/sandboxed-tor-browser/internal/tor/tor.go
index 69d9307..ffdf369 100644
--- a/src/cmd/sandboxed-tor-browser/internal/tor/tor.go
+++ b/src/cmd/sandboxed-tor-browser/internal/tor/tor.go
@@ -245,8 +245,9 @@ func (t *Tor) launchSurrogates(cfg *config.Config) error {
}
func (t *Tor) eventReader() {
+ ctrl := t.ctrl
for {
- resp, err := t.ctrl.NextEvent()
+ resp, err := ctrl.NextEvent()
if err != nil {
break
}
1
0
[sandboxed-tor-browser/master] Bug 21184: Do a better job of killing/cleaning up bwrap children.
by yawning@torproject.org 10 Jan '17
by yawning@torproject.org 10 Jan '17
10 Jan '17
commit d34355a097590c900217acc397ad6a383af04267
Author: Yawning Angel <yawning(a)schwanenlied.me>
Date: Tue Jan 10 07:42:11 2017 +0000
Bug 21184: Do a better job of killing/cleaning up bwrap children.
Use the bwrap fork that's acting as init to kill, wait on the main bwrap
process returned from os/exec when waiting/polling process status.
This can be further improved, but would require bubblewrap patches to
make substantially better, and at least the cleanup/refactor lays the
groundwork for everything.
---
ChangeLog | 3 +-
.../internal/sandbox/application.go | 6 +-
.../internal/sandbox/hugbox.go | 30 ++++----
.../internal/sandbox/process/process.go | 84 ++++++++++++++++++++++
src/cmd/sandboxed-tor-browser/internal/tor/tor.go | 71 ++++++++++--------
.../sandboxed-tor-browser/internal/ui/gtk/ui.go | 7 +-
src/cmd/sandboxed-tor-browser/internal/ui/ui.go | 8 +--
7 files changed, 153 insertions(+), 56 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8ca4df4..d7693bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
Changes in version 0.0.3 - UNRELEASED:
- * Bug 21903: Go back to using gosecco for seccomp rule compilation.
+ * Bug 21184: Do a better job of killing/cleaning up bwrap children.
+ * Bug 21093: Go back to using gosecco for seccomp rule compilation.
* Bug 20940: Deprecate x86 support.
* Bug 20778: Check for updates in the background.
* Bug 20851: If the incremental update fails, fall back to the complete
diff --git a/src/cmd/sandboxed-tor-browser/internal/sandbox/application.go b/src/cmd/sandboxed-tor-browser/internal/sandbox/application.go
index 8d9eca9..fa773d4 100644
--- a/src/cmd/sandboxed-tor-browser/internal/sandbox/application.go
+++ b/src/cmd/sandboxed-tor-browser/internal/sandbox/application.go
@@ -25,7 +25,6 @@ import (
"io/ioutil"
"log"
"os"
- "os/exec"
"path/filepath"
"runtime"
"sort"
@@ -33,6 +32,7 @@ import (
"syscall"
"cmd/sandboxed-tor-browser/internal/dynlib"
+ . "cmd/sandboxed-tor-browser/internal/sandbox/process"
"cmd/sandboxed-tor-browser/internal/tor"
"cmd/sandboxed-tor-browser/internal/ui/config"
. "cmd/sandboxed-tor-browser/internal/utils"
@@ -46,7 +46,7 @@ var (
)
// RunTorBrowser launches sandboxed Tor Browser.
-func RunTorBrowser(cfg *config.Config, manif *config.Manifest, tor *tor.Tor) (cmd *exec.Cmd, err error) {
+func RunTorBrowser(cfg *config.Config, manif *config.Manifest, tor *tor.Tor) (process *Process, err error) {
const (
profileSubDir = "TorBrowser/Data/Browser/profile.default"
cachesSubDir = "TorBrowser/Data/Browser/Caches"
@@ -492,7 +492,7 @@ func stageUpdate(updateDir, installDir string, mar []byte) error {
}
// RunTor launches sandboxeed Tor.
-func RunTor(cfg *config.Config, manif *config.Manifest, torrc []byte) (cmd *exec.Cmd, err error) {
+func RunTor(cfg *config.Config, manif *config.Manifest, torrc []byte) (process *Process, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("%v", r)
diff --git a/src/cmd/sandboxed-tor-browser/internal/sandbox/hugbox.go b/src/cmd/sandboxed-tor-browser/internal/sandbox/hugbox.go
index 260be34..9d2bba4 100644
--- a/src/cmd/sandboxed-tor-browser/internal/sandbox/hugbox.go
+++ b/src/cmd/sandboxed-tor-browser/internal/sandbox/hugbox.go
@@ -31,6 +31,7 @@ import (
"time"
"cmd/sandboxed-tor-browser/internal/data"
+ . "cmd/sandboxed-tor-browser/internal/sandbox/process"
. "cmd/sandboxed-tor-browser/internal/utils"
)
@@ -54,6 +55,10 @@ func (u *unshareOpts) toArgs() []string {
}
if u.pid {
args = append(args, "--unshare-pid")
+ } else {
+ // Until bubblewrap > 0.1.5 when the child calls setsid(),
+ // we have to rely on SIGKILL-ing the init fork for cleanup.
+ panic("sandbox: unshare.pid is required")
}
if u.net {
args = append(args, "--unshare-net")
@@ -152,7 +157,7 @@ func (h *hugbox) assetFile(dest, asset string) {
h.file(dest, b)
}
-func (h *hugbox) run() (*exec.Cmd, error) {
+func (h *hugbox) run() (*Process, error) {
// Create the command struct for the sandbox.
cmd := &exec.Cmd{
Path: h.bwrapPath,
@@ -298,10 +303,11 @@ func (h *hugbox) run() (*exec.Cmd, error) {
// Do the rest of the setup in a go routine, and monitor completion and
// a watchdog timer.
doneCh := make(chan error)
- bwrapPid := cmd.Process.Pid
hz := time.NewTicker(1 * time.Second)
defer hz.Stop()
+ process := NewProcess(cmd)
+
go func() {
// Flush the pending writes.
for i, wrFd := range pendingWriteFds {
@@ -330,7 +336,7 @@ func (h *hugbox) run() (*exec.Cmd, error) {
panic("sandbox: seccomp fd exists when there are no rules to be written")
}
- // Read back the child pid.
+ // Read back the init child pid.
decoder := json.NewDecoder(infoRdFd)
info := &bwrapInfo{}
if err := decoder.Decode(info); err != nil {
@@ -339,11 +345,11 @@ func (h *hugbox) run() (*exec.Cmd, error) {
}
Debugf("sandbox: bwrap pid is: %v", cmd.Process.Pid)
- Debugf("sandbox: child pid is: %v", info.Pid)
+ Debugf("sandbox: bwrap init pid is: %v", info.Pid)
- // This is more useful to us, since it's the bubblewrap child inside
- // the container.
- cmd.Process.Pid = info.Pid
+ // Sending a SIGKILL to this will terminate every process in the PID
+ // namespace. If people aren't using unshare.pid, bad things happen.
+ process.SetInitPid(info.Pid)
doneCh <- nil
}()
@@ -354,15 +360,11 @@ timeoutLoop:
select {
case err = <-doneCh:
if err == nil {
- return cmd, nil
+ return process, nil
}
break timeoutLoop
case <-hz.C:
- var wstatus syscall.WaitStatus
- _, err = syscall.Wait4(bwrapPid, &wstatus, syscall.WNOHANG, nil)
- if err != nil {
- break timeoutLoop
- } else if wstatus.Exited() {
+ if !process.Running() {
err = fmt.Errorf("sandbox: bubblewrap exited unexpectedly")
break timeoutLoop
}
@@ -370,7 +372,7 @@ timeoutLoop:
}
}
- cmd.Process.Kill()
+ process.Kill()
return nil, err
}
diff --git a/src/cmd/sandboxed-tor-browser/internal/sandbox/process/process.go b/src/cmd/sandboxed-tor-browser/internal/sandbox/process/process.go
new file mode 100644
index 0000000..61ab344
--- /dev/null
+++ b/src/cmd/sandboxed-tor-browser/internal/sandbox/process/process.go
@@ -0,0 +1,84 @@
+// process.go - Sandboxed process.
+// Copyright (C) 2017 Yawning Angel.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+// Package process contains a wrapper around a running bwrap instance, and is
+// in a separate package just to break an import loop.
+package process
+
+import (
+ "os"
+ "os/exec"
+ "syscall"
+)
+
+// Process is a running bwrap instance.
+type Process struct {
+ init *os.Process
+ cmd *exec.Cmd
+}
+
+// Kill terminates the bwrap instance and all of it's children.
+func (p *Process) Kill() {
+ if p.init != nil {
+ p.init.Kill()
+ p.init = nil
+ }
+ if p.cmd != nil {
+ p.cmd.Process.Kill()
+ p.cmd.Process.Wait()
+ p.cmd = nil
+ }
+}
+
+// Wait waits for the bwrap instance to complete.
+func (p *Process) Wait() error {
+ // Can't wait on the init process since it's a grandchild.
+ if p.cmd != nil {
+ p.cmd.Process.Wait()
+ p.cmd = nil
+ }
+ return nil
+}
+
+// Running returns true if the bwrap instance is running.
+func (p *Process) Running() bool {
+ wpid, err := syscall.Wait4(p.cmd.Process.Pid, nil, syscall.WNOHANG, nil)
+ if err != nil {
+ return false
+ }
+ return wpid == 0
+}
+
+// SetInitPid sets the pid of the bwrap init fork. This should not be called
+// except from the sandbox creation routine.
+func (p *Process) SetInitPid(pid int) {
+ if p.init != nil {
+ panic("process: SetInitPid called when already set")
+ }
+
+ proc, err := os.FindProcess(pid)
+ if err != nil {
+ panic("process: SetInitPid on invalid process:" + err.Error())
+ }
+ p.init = proc
+}
+
+// NewProcess creates a new Process instance from a Cmd.
+func NewProcess(cmd *exec.Cmd) *Process {
+ process := new(Process)
+ process.cmd = cmd
+ return process
+}
diff --git a/src/cmd/sandboxed-tor-browser/internal/tor/tor.go b/src/cmd/sandboxed-tor-browser/internal/tor/tor.go
index 0de3b6d..69d9307 100644
--- a/src/cmd/sandboxed-tor-browser/internal/tor/tor.go
+++ b/src/cmd/sandboxed-tor-browser/internal/tor/tor.go
@@ -27,12 +27,10 @@ import (
"log"
mrand "math/rand"
"os"
- "os/exec"
"path/filepath"
"strconv"
"strings"
"sync"
- "syscall"
"time"
"unicode"
@@ -41,6 +39,7 @@ import (
"golang.org/x/net/proxy"
"cmd/sandboxed-tor-browser/internal/data"
+ "cmd/sandboxed-tor-browser/internal/sandbox/process"
. "cmd/sandboxed-tor-browser/internal/ui/async"
"cmd/sandboxed-tor-browser/internal/ui/config"
. "cmd/sandboxed-tor-browser/internal/utils"
@@ -56,7 +55,7 @@ type Tor struct {
isSystem bool
isBootstrapped bool
- cmd *exec.Cmd
+ process *process.Process
ctrl *bulb.Conn
ctrlEvents chan *bulb.Response
@@ -146,37 +145,47 @@ func (t *Tor) getconf(arg string) (*bulb.Response, error) {
// Shutdown attempts to gracefully clean up the Tor instance. If it is a
// system tor, only the control port connection will be closed. Otherwise,
-// the tor daemon will be SIGTERMed.
+// the tor daemon will be terminated, gracefully if possible.
func (t *Tor) Shutdown() {
t.Lock()
defer t.Unlock()
+ sentHalt := false
if t.ctrl != nil {
- // Try extra hard to get tor to fuck off, if we spawned it.
+ // Try to gracefully terminate the daemon via the control port.
if !t.isSystem {
t.ctrl.Request("SIGNAL HALT")
+ sentHalt = true
}
t.ctrl.Close()
t.ctrl = nil
}
- if t.cmd != nil {
- waitCh := make(chan bool)
- go func() {
- t.cmd.Process.Signal(syscall.SIGTERM)
- t.cmd.Process.Wait()
- waitCh <- true
- }()
+ if t.process != nil {
+ if t.isSystem {
+ panic("tor: system tor has a sandbox child process")
+ }
- select {
- case <-waitCh:
- Debugf("tor: Process exited after SIGTERM")
- case <-time.After(5 * time.Second):
- Debugf("tor: Process timed out waiting after SIGTERM, killing.")
- t.cmd.Process.Signal(syscall.SIGKILL)
+ if sentHalt {
+ waitCh := make(chan bool)
+ go func() {
+ t.process.Wait()
+ waitCh <- true
+ }()
+
+ select {
+ case <-waitCh:
+ Debugf("tor: Process exited after HALT")
+ case <-time.After(5 * time.Second):
+ Debugf("tor: Process timed out waiting after HALT, killing.")
+ t.process.Kill()
+ }
+ } else {
+ Debugf("tor: Process has no control port, killing")
+ t.process.Kill()
}
- t.cmd = nil
+ t.process = nil
}
if t.ctrlSurrogate != nil {
@@ -281,10 +290,10 @@ func NewSystemTor(cfg *config.Config) (*Tor, error) {
}
// NewSandboxedTor creates a Tor struct around a sandboxed tor instance.
-func NewSandboxedTor(cfg *config.Config, cmd *exec.Cmd) *Tor {
+func NewSandboxedTor(cfg *config.Config, process *process.Process) *Tor {
t := new(Tor)
t.isSystem = false
- t.cmd = cmd
+ t.process = process
t.socksNet = "unix"
t.socksAddr = filepath.Join(cfg.TorDataDir, "socks")
t.ctrlAddr = filepath.Join(cfg.TorDataDir, "control")
@@ -333,9 +342,10 @@ func (t *Tor) DoBootstrap(cfg *config.Config, async *Async) (err error) {
if t.ctrl, err = bulb.Dial("unix", t.ctrlAddr); err != nil {
return err
}
+ ctrl := t.ctrl // Shadow, so that we fail gracefully on close.
// Authenticate with the control port.
- if err = t.ctrl.Authenticate(cfg.Tor.CtrlPassword); err != nil {
+ if err = ctrl.Authenticate(cfg.Tor.CtrlPassword); err != nil {
return err
}
@@ -344,22 +354,22 @@ func (t *Tor) DoBootstrap(cfg *config.Config, async *Async) (err error) {
// shouldn't leave a turd process lying around, though I've seen it on
// occaision. :(
log.Printf("tor: Taking ownership of the tor process")
- if _, err = t.ctrl.Request("TAKEOWNERSHIP"); err != nil {
+ if _, err = ctrl.Request("TAKEOWNERSHIP"); err != nil {
return err
}
// Start the event async reader.
- t.ctrl.StartAsyncReader()
+ ctrl.StartAsyncReader()
go t.eventReader()
// Register the `STATUS_CLIENT` event handler.
- if _, err = t.ctrl.Request("SETEVENTS STATUS_CLIENT"); err != nil {
+ if _, err = ctrl.Request("SETEVENTS STATUS_CLIENT"); err != nil {
return err
}
// Start the bootstrap.
async.UpdateProgress("Connecting to the Tor network.")
- if _, err = t.ctrl.Request("RESETCONF DisableNetwork"); err != nil {
+ if _, err = ctrl.Request("RESETCONF DisableNetwork"); err != nil {
return err
}
@@ -383,10 +393,9 @@ func (t *Tor) DoBootstrap(cfg *config.Config, async *Async) (err error) {
case <-hz.C:
const statusPrefix = "status/bootstrap-phase="
- // As a fallback, use kill(pid, 0) to detect if the process has
- // puked. waitpid(2) is probably better since it's a child, but
- // this should be good enough, and is only to catch tor crashing.
- if err := syscall.Kill(t.cmd.Process.Pid, 0); err == syscall.ESRCH {
+ // As a fallback, periodicall poll to see if the process has
+ // crashed.
+ if !t.process.Running() {
return fmt.Errorf("tor process appears to have crashed.")
}
@@ -414,7 +423,7 @@ func (t *Tor) DoBootstrap(cfg *config.Config, async *Async) (err error) {
}
// Squelch the events, and drain the event queue.
- if _, err = t.ctrl.Request("SETEVENTS"); err != nil {
+ if _, err = ctrl.Request("SETEVENTS"); err != nil {
return err
}
for len(t.ctrlEvents) > 0 {
diff --git a/src/cmd/sandboxed-tor-browser/internal/ui/gtk/ui.go b/src/cmd/sandboxed-tor-browser/internal/ui/gtk/ui.go
index 7b36638..7a6624c 100644
--- a/src/cmd/sandboxed-tor-browser/internal/ui/gtk/ui.go
+++ b/src/cmd/sandboxed-tor-browser/internal/ui/gtk/ui.go
@@ -213,13 +213,14 @@ func (ui *gtkUI) Run() error {
}
// Kill the browser. It's not as if firefox does the right thing on
- // SIGTERM/SIGINT and we have the pid of the bubblewrap child instead
- // of the firefox process anyway...
+ // SIGTERM/SIGINT and we have the pid of init inside the sandbox
+ // anyway...
//
// https://bugzilla.mozilla.org/show_bug.cgi?id=336193
- ui.Sandbox.Process.Kill()
+ ui.Sandbox.Kill()
<-waitCh
+ ui.Sandbox = nil
ui.PendingUpdate = update
ui.ForceConfig = false
ui.NoKillTor = true // Don't re-lauch tor on the first pass.
diff --git a/src/cmd/sandboxed-tor-browser/internal/ui/ui.go b/src/cmd/sandboxed-tor-browser/internal/ui/ui.go
index 53034e2..1de7e8c 100644
--- a/src/cmd/sandboxed-tor-browser/internal/ui/ui.go
+++ b/src/cmd/sandboxed-tor-browser/internal/ui/ui.go
@@ -28,7 +28,6 @@ import (
"net"
"net/http"
"os"
- "os/exec"
"path/filepath"
"strings"
"syscall"
@@ -39,6 +38,7 @@ import (
"cmd/sandboxed-tor-browser/internal/data"
"cmd/sandboxed-tor-browser/internal/installer"
"cmd/sandboxed-tor-browser/internal/sandbox"
+ "cmd/sandboxed-tor-browser/internal/sandbox/process"
"cmd/sandboxed-tor-browser/internal/tor"
. "cmd/sandboxed-tor-browser/internal/ui/async"
"cmd/sandboxed-tor-browser/internal/ui/config"
@@ -96,7 +96,7 @@ type UI interface {
type Common struct {
Cfg *config.Config
Manif *config.Manifest
- Sandbox *exec.Cmd
+ Sandbox *process.Process
tor *tor.Tor
lock *lockFile
@@ -322,14 +322,14 @@ func (c *Common) launchTor(async *Async, onlySystem bool) error {
os.Remove(filepath.Join(c.Cfg.TorDataDir, "control_port"))
async.UpdateProgress("Launching Tor executable.")
- cmd, err := sandbox.RunTor(c.Cfg, c.Manif, torrc)
+ process, err := sandbox.RunTor(c.Cfg, c.Manif, torrc)
if err != nil {
async.Err = err
return err
}
async.UpdateProgress("Waiting on Tor bootstrap.")
- c.tor = tor.NewSandboxedTor(c.Cfg, cmd)
+ c.tor = tor.NewSandboxedTor(c.Cfg, process)
if err = c.tor.DoBootstrap(c.Cfg, async); err != nil {
async.Err = err
return err
1
0
[translation/tails-greeter-2] Update translations for tails-greeter-2
by translation@torproject.org 09 Jan '17
by translation@torproject.org 09 Jan '17
09 Jan '17
commit a1f6ca9c3f572fe335047891cd76f765b8ef620a
Author: Translation commit bot <translation(a)torproject.org>
Date: Mon Jan 9 23:51:01 2017 +0000
Update translations for tails-greeter-2
---
pt/pt.po | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pt/pt.po b/pt/pt.po
index 6912b25..adedb68 100644
--- a/pt/pt.po
+++ b/pt/pt.po
@@ -64,7 +64,7 @@ msgstr ""
#. This string will never be displayed in the 1st version of the greeter.
#: ../data/greeter.ui.h:12
msgid "Microsoft Windows 10 camouflage"
-msgstr ""
+msgstr "camuflagem Microsoft Windows 10"
#: ../data/greeter.ui.h:13
msgid "MAC Address Spoofing"
1
0
[translation/tails-misc] Update translations for tails-misc
by translation@torproject.org 09 Jan '17
by translation@torproject.org 09 Jan '17
09 Jan '17
commit cb1d1b78c9ef62b095ae751a671e304ffa1b73b0
Author: Translation commit bot <translation(a)torproject.org>
Date: Mon Jan 9 23:46:17 2017 +0000
Update translations for tails-misc
---
pt.po | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/pt.po b/pt.po
index f1c33f2..f06fcee 100644
--- a/pt.po
+++ b/pt.po
@@ -5,10 +5,11 @@
# Translators:
# alfalb.as, 2015
# André Monteiro <andre.monteir(a)gmail.com>, 2014
+# Cesar Silva <cesarsilvabx(a)gmail.com>, 2017
# sierleunam <cfb53275(a)opayq.com>, 2014
# testsubject67 <deborinha97(a)hotmail.com>, 2014
# Henrique R., 2015
-# Koh Pyreit <kohpyreit(a)gmail.com>, 2013
+# Koh Pyreit <inactive+kohpyreit(a)transifex.com>, 2013
# Lídia Martins <lolplayer713(a)gmail.com>, 2015
# Marco de Carvalho <enf.minos(a)gmail.com>, 2015
# Manuela Silva <inactive+h_manuela_rodsilva(a)transifex.com>, 2015
@@ -21,9 +22,9 @@ msgid ""
msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-09-02 16:02+0200\n"
-"PO-Revision-Date: 2016-09-03 08:57+0000\n"
-"Last-Translator: carolyn <carolyn(a)anhalt.org>\n"
+"POT-Creation-Date: 2016-11-30 13:55+0100\n"
+"PO-Revision-Date: 2017-01-09 23:25+0000\n"
+"Last-Translator: Cesar Silva <cesarsilvabx(a)gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/otf/torproject/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -85,7 +86,7 @@ msgstr "_Sair"
#: config/chroot_local-includes/usr/local/bin/icedove:27
msgid "The <b>Claws Mail</b> persistence feature is activated."
-msgstr ""
+msgstr "O <b>Claws Mail</b> opção de persistência está activado."
#: config/chroot_local-includes/usr/local/bin/icedove:29
msgid ""
@@ -166,11 +167,11 @@ msgstr "Tor necessita de um relógio preciso para funcionar corretamente, especi
msgid "Failed to synchronize the clock!"
msgstr "Ocorreu uma falha ao sincronizar o relógio!"
-#: config/chroot_local-includes/usr/local/bin/tails-security-check:146
+#: config/chroot_local-includes/usr/local/bin/tails-security-check:124
msgid "This version of Tails has known security issues:"
msgstr "Esta versão do Tails possui algumas questões de sgurança conhecidas:"
-#: config/chroot_local-includes/usr/local/bin/tails-security-check:156
+#: config/chroot_local-includes/usr/local/bin/tails-security-check:134
msgid "Known security issues"
msgstr "Problemas conhecidos"
1
0
[translation/liveusb-creator] Update translations for liveusb-creator
by translation@torproject.org 09 Jan '17
by translation@torproject.org 09 Jan '17
09 Jan '17
commit acb8561782baa8248efaecf635040f40ff50461e
Author: Translation commit bot <translation(a)torproject.org>
Date: Mon Jan 9 23:45:29 2017 +0000
Update translations for liveusb-creator
---
pt/pt.po | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/pt/pt.po b/pt/pt.po
index b97c68f..518da05 100644
--- a/pt/pt.po
+++ b/pt/pt.po
@@ -3,9 +3,10 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Cesar Silva <cesarsilvabx(a)gmail.com>, 2017
# testsubject67 <deborinha97(a)hotmail.com>, 2014
# Francisco P. <sonhosdigitais(a)gmx.com>, 2013
-# Koh Pyreit <kohpyreit(a)gmail.com>, 2013
+# Koh Pyreit <inactive+kohpyreit(a)transifex.com>, 2013
# Manuela Silva <inactive+h_manuela_rodsilva(a)transifex.com>, 2015
# alfalb_mansil, 2014
# Manuela Silva <inactive+h_manuela_rodsilva(a)transifex.com>, 2015
@@ -20,8 +21,8 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-02 21:23+0100\n"
-"PO-Revision-Date: 2016-07-27 22:52+0000\n"
-"Last-Translator: Sérgio Marques <smarquespt(a)gmail.com>\n"
+"PO-Revision-Date: 2017-01-09 23:24+0000\n"
+"Last-Translator: Cesar Silva <cesarsilvabx(a)gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/otf/torproject/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -81,7 +82,7 @@ msgid ""
"<li>The encrypted persistent storage of the Tails USB stick that you are currently using is not copied.</li>\n"
"\n"
"</ul>"
-msgstr ""
+msgstr "<ul>\n<li>Instale o Tails em outra pen USB copiando o sistema Tails que está a usar atualmente..</li>\n\n<li>A pen USB onde você vai instalar será formatada e todos os dados serão perdidos.</li>\n\n<li>O armazenamento encriptado persistente da pen USB Tails que está a usar não é copiado.</li>\n\n</ul>"
#: ../liveusb/launcher_ui.py:157
msgid ""
1
0
[translation/tor-browser-manual] Update translations for tor-browser-manual
by translation@torproject.org 09 Jan '17
by translation@torproject.org 09 Jan '17
09 Jan '17
commit 489f61dbe3cc31df96847cf7042a10ac47560818
Author: Translation commit bot <translation(a)torproject.org>
Date: Mon Jan 9 23:22:11 2017 +0000
Update translations for tor-browser-manual
---
pt/pt.po | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/pt/pt.po b/pt/pt.po
index 8cac51f..ed561bf 100644
--- a/pt/pt.po
+++ b/pt/pt.po
@@ -32,13 +32,15 @@ msgstr ""
#: about-tor-browser.page:10
msgid "About Tor Browser"
-msgstr ""
+msgstr "Sobre o Tor Browser"
#: about-tor-browser.page:12
msgid ""
"Tor Browser uses the Tor network to protect your privacy and anonymity. "
"Using the Tor network has two main properties:"
msgstr ""
+"O Tor Browser usa a rede Tor para proteger a sua privacidade e anonimato. "
+"Usar a rede Tor tem duas propriedades principais: "
#: about-tor-browser.page:18
msgid ""
@@ -46,6 +48,9 @@ msgid ""
" will not be able to track your internet activity, including the names and "
"addresses of the websites you visit."
msgstr ""
+"O seu fornecedor de serviços internet, ou mesmo alguém observando a sua "
+"conexão local, nao conseguirão descobrir a sua atividade na internet, "
+"incluindo os nomes e endereços de sites web que voce visita."
#: about-tor-browser.page:25
msgid ""
@@ -54,12 +59,17 @@ msgid ""
"real Internet (IP) address, and will not know who you are unless you "
"explicitly identify yourself."
msgstr ""
+"Os operadores de sites web e serviços que voce usa, ou alguém observando-os,"
+" vão ver uma conexão vinda da rede Tor em vez do seu verdadeiro Endereço "
+"(IP) Internet, e não saberão quem é você, apenas se você se identificar."
#: about-tor-browser.page:34
msgid ""
"In addition, Tor Browser is designed to prevent websites from "
"“fingerprinting” or identifying you based on your browser configuration."
msgstr ""
+"Em adição, o Tor Browser foi concedido para prevenir que sites web "
+"'detectem' ou o identifiquem baseado na configuração do seu navegador."
#: about-tor-browser.page:39
msgid ""
@@ -67,6 +77,10 @@ msgid ""
" valid for a single session (until Tor Browser is exited or a <link xref"
"=\"managing-identities#new-identity\">New Identity</link> is requested)."
msgstr ""
+"Por predefinição, o Tor Browser não guarda nenhum histórico de visitas. Os "
+"Cookies são apenas validos para uma sessão (antes do Tor Browser fechar ou "
+"uma <link xref=\"managing-identities#new-identity\"> Nova Identidade </Link>"
+" é pedida.)"
#: about-tor-browser.page:50
msgid "How Tor works"
1
0