[tor-commits] [stem/master] Bump test for TAKEOWNERSHIP termination SLA

2020-01-15 Thread atagar
commit e64a118db8d789827183b6b66a6aa6c535868727
Author: Damian Johnson 
Date:   Wed Jan 15 17:37:44 2020 -0800

Bump test for TAKEOWNERSHIP termination SLA

Tor checks for the owning process every fifteen seconds, so this test's 
timeout
is way too low...

  https://github.com/torproject/stem/issues/52

Puzzling that this passes reliably for me. With that poll rate this should 
be
failing far more often...
---
 test/integ/process.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/integ/process.py b/test/integ/process.py
index e40c501a..274a8ec9 100644
--- a/test/integ/process.py
+++ b/test/integ/process.py
@@ -631,7 +631,7 @@ class TestProcess(unittest.TestCase):
   # give tor a few seconds to quit
   start_time = time.time()
 
-  while time.time() - start_time < 5:
+  while time.time() - start_time < 20:
 if tor_process.poll() == 0:
   return  # tor exited
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.2] Merge branch 'maint-0.4.1' into maint-0.4.2

2020-01-15 Thread teor
commit 48187248d3f79243590d60285708f3e2d45f8d8f
Merge: 7e111d0ea fb541ffca
Author: teor 
Date:   Thu Jan 16 10:00:47 2020 +1000

Merge branch 'maint-0.4.1' into maint-0.4.2




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.2] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.0] Merge branch 'maint-0.4.0' into release-0.4.0

2020-01-15 Thread teor
commit 8e3e8b0a1c27a7643706259ff7413e4e2d359124
Merge: 262906e99 026f068bb
Author: teor 
Date:   Thu Jan 16 10:00:36 2020 +1000

Merge branch 'maint-0.4.0' into release-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.2] Merge branch 'maint-0.4.0' into maint-0.4.1

2020-01-15 Thread teor
commit fb541ffca31d4906642ffb3bbe6bb6079cfcb1c9
Merge: f5461a4bd 026f068bb
Author: teor 
Date:   Thu Jan 16 10:00:40 2020 +1000

Merge branch 'maint-0.4.0' into maint-0.4.1

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.2] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.1] Merge branch 'maint-0.4.0' into maint-0.4.1

2020-01-15 Thread teor
commit fb541ffca31d4906642ffb3bbe6bb6079cfcb1c9
Merge: f5461a4bd 026f068bb
Author: teor 
Date:   Thu Jan 16 10:00:40 2020 +1000

Merge branch 'maint-0.4.0' into maint-0.4.1

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.3.5] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.1] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.1] Merge branch 'maint-0.4.1' into release-0.4.1

2020-01-15 Thread teor
commit 2be3b8275062e34ef6a2c8d753a01b3137de739e
Merge: bdc870e6f fb541ffca
Author: teor 
Date:   Thu Jan 16 10:00:44 2020 +1000

Merge branch 'maint-0.4.1' into release-0.4.1

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.3.5] Do not try to shut down the event loop when it is not initialized.

2020-01-15 Thread teor
commit 4d70e725d16abc2f85d54b91f50e75c37c765087
Author: Nick Mathewson 
Date:   Wed Nov 6 11:33:23 2019 -0500

Do not try to shut down the event loop when it is not initialized.

Doing so caused us to crash in some unusual circumstances, such as
using --verify-config to verify a configuration that failed during
the options_act() stage.

Fixes bug 32407; bugfix on 0.3.3.1-alpha.
---
 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/changes/ticket32407 b/changes/ticket32407
new file mode 100644
index 0..badb09abf
--- /dev/null
+++ b/changes/ticket32407
@@ -0,0 +1,4 @@
+  o Minor bugfixes (crash):
+- When running Tor with an option like --verify-config or --dump-config
+  that does not start the event loop, avoid crashing if we try to exit
+  early because of an error. Fixes bug 32407; bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c
index 6e2b300fb..64df495ba 100644
--- a/src/core/mainloop/mainloop.c
+++ b/src/core/mainloop/mainloop.c
@@ -774,6 +774,10 @@ tor_shutdown_event_loop_and_exit(int exitcode)
   main_loop_should_exit = 1;
   main_loop_exit_value = exitcode;
 
+  if (! tor_libevent_is_initialized()) {
+return; /* No event loop to shut down. */
+  }
+
   /* Die with an assertion failure in ten seconds, if for some reason we don't
* exit normally. */
   /*  We should consider this code if it's never used. */
diff --git a/src/lib/evloop/compat_libevent.c b/src/lib/evloop/compat_libevent.c
index 91eacb993..939d77f85 100644
--- a/src/lib/evloop/compat_libevent.c
+++ b/src/lib/evloop/compat_libevent.c
@@ -181,6 +181,16 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
   event_get_version(), tor_libevent_get_method());
 }
 
+/**
+ * Return true iff the libevent module has been successfully initialized,
+ * and not subsequently shut down.
+ **/
+bool
+tor_libevent_is_initialized(void)
+{
+  return the_event_base != NULL;
+}
+
 /** Return the current Libevent event base that we're set up to use. */
 MOCK_IMPL(struct event_base *,
 tor_libevent_get_base, (void))
diff --git a/src/lib/evloop/compat_libevent.h b/src/lib/evloop/compat_libevent.h
index afe887a01..92724c369 100644
--- a/src/lib/evloop/compat_libevent.h
+++ b/src/lib/evloop/compat_libevent.h
@@ -13,6 +13,8 @@
 #include "lib/testsupport/testsupport.h"
 #include "lib/malloc/malloc.h"
 
+#include 
+
 void configure_libevent_logging(void);
 void suppress_libevent_log_msg(const char *msg);
 
@@ -68,6 +70,7 @@ typedef struct tor_libevent_cfg {
 } tor_libevent_cfg;
 
 void tor_libevent_initialize(tor_libevent_cfg *cfg);
+bool tor_libevent_is_initialized(void);
 MOCK_DECL(struct event_base *, tor_libevent_get_base, (void));
 const char *tor_libevent_get_method(void);
 void tor_check_libevent_header_compatibility(void);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.1] Do not try to shut down the event loop when it is not initialized.

2020-01-15 Thread teor
commit 4d70e725d16abc2f85d54b91f50e75c37c765087
Author: Nick Mathewson 
Date:   Wed Nov 6 11:33:23 2019 -0500

Do not try to shut down the event loop when it is not initialized.

Doing so caused us to crash in some unusual circumstances, such as
using --verify-config to verify a configuration that failed during
the options_act() stage.

Fixes bug 32407; bugfix on 0.3.3.1-alpha.
---
 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/changes/ticket32407 b/changes/ticket32407
new file mode 100644
index 0..badb09abf
--- /dev/null
+++ b/changes/ticket32407
@@ -0,0 +1,4 @@
+  o Minor bugfixes (crash):
+- When running Tor with an option like --verify-config or --dump-config
+  that does not start the event loop, avoid crashing if we try to exit
+  early because of an error. Fixes bug 32407; bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c
index 6e2b300fb..64df495ba 100644
--- a/src/core/mainloop/mainloop.c
+++ b/src/core/mainloop/mainloop.c
@@ -774,6 +774,10 @@ tor_shutdown_event_loop_and_exit(int exitcode)
   main_loop_should_exit = 1;
   main_loop_exit_value = exitcode;
 
+  if (! tor_libevent_is_initialized()) {
+return; /* No event loop to shut down. */
+  }
+
   /* Die with an assertion failure in ten seconds, if for some reason we don't
* exit normally. */
   /*  We should consider this code if it's never used. */
diff --git a/src/lib/evloop/compat_libevent.c b/src/lib/evloop/compat_libevent.c
index 91eacb993..939d77f85 100644
--- a/src/lib/evloop/compat_libevent.c
+++ b/src/lib/evloop/compat_libevent.c
@@ -181,6 +181,16 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
   event_get_version(), tor_libevent_get_method());
 }
 
+/**
+ * Return true iff the libevent module has been successfully initialized,
+ * and not subsequently shut down.
+ **/
+bool
+tor_libevent_is_initialized(void)
+{
+  return the_event_base != NULL;
+}
+
 /** Return the current Libevent event base that we're set up to use. */
 MOCK_IMPL(struct event_base *,
 tor_libevent_get_base, (void))
diff --git a/src/lib/evloop/compat_libevent.h b/src/lib/evloop/compat_libevent.h
index afe887a01..92724c369 100644
--- a/src/lib/evloop/compat_libevent.h
+++ b/src/lib/evloop/compat_libevent.h
@@ -13,6 +13,8 @@
 #include "lib/testsupport/testsupport.h"
 #include "lib/malloc/malloc.h"
 
+#include 
+
 void configure_libevent_logging(void);
 void suppress_libevent_log_msg(const char *msg);
 
@@ -68,6 +70,7 @@ typedef struct tor_libevent_cfg {
 } tor_libevent_cfg;
 
 void tor_libevent_initialize(tor_libevent_cfg *cfg);
+bool tor_libevent_is_initialized(void);
 MOCK_DECL(struct event_base *, tor_libevent_get_base, (void));
 const char *tor_libevent_get_method(void);
 void tor_check_libevent_header_compatibility(void);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.2] Merge branch 'maint-0.4.2' into release-0.4.2

2020-01-15 Thread teor
commit 3bfbeff80db8d15dc47744fd49ad826b014a7b91
Merge: afa4cc57b 48187248d
Author: teor 
Date:   Thu Jan 16 10:00:51 2020 +1000

Merge branch 'maint-0.4.2' into release-0.4.2

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.1] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.0] Do not try to shut down the event loop when it is not initialized.

2020-01-15 Thread teor
commit 4d70e725d16abc2f85d54b91f50e75c37c765087
Author: Nick Mathewson 
Date:   Wed Nov 6 11:33:23 2019 -0500

Do not try to shut down the event loop when it is not initialized.

Doing so caused us to crash in some unusual circumstances, such as
using --verify-config to verify a configuration that failed during
the options_act() stage.

Fixes bug 32407; bugfix on 0.3.3.1-alpha.
---
 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/changes/ticket32407 b/changes/ticket32407
new file mode 100644
index 0..badb09abf
--- /dev/null
+++ b/changes/ticket32407
@@ -0,0 +1,4 @@
+  o Minor bugfixes (crash):
+- When running Tor with an option like --verify-config or --dump-config
+  that does not start the event loop, avoid crashing if we try to exit
+  early because of an error. Fixes bug 32407; bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c
index 6e2b300fb..64df495ba 100644
--- a/src/core/mainloop/mainloop.c
+++ b/src/core/mainloop/mainloop.c
@@ -774,6 +774,10 @@ tor_shutdown_event_loop_and_exit(int exitcode)
   main_loop_should_exit = 1;
   main_loop_exit_value = exitcode;
 
+  if (! tor_libevent_is_initialized()) {
+return; /* No event loop to shut down. */
+  }
+
   /* Die with an assertion failure in ten seconds, if for some reason we don't
* exit normally. */
   /*  We should consider this code if it's never used. */
diff --git a/src/lib/evloop/compat_libevent.c b/src/lib/evloop/compat_libevent.c
index 91eacb993..939d77f85 100644
--- a/src/lib/evloop/compat_libevent.c
+++ b/src/lib/evloop/compat_libevent.c
@@ -181,6 +181,16 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
   event_get_version(), tor_libevent_get_method());
 }
 
+/**
+ * Return true iff the libevent module has been successfully initialized,
+ * and not subsequently shut down.
+ **/
+bool
+tor_libevent_is_initialized(void)
+{
+  return the_event_base != NULL;
+}
+
 /** Return the current Libevent event base that we're set up to use. */
 MOCK_IMPL(struct event_base *,
 tor_libevent_get_base, (void))
diff --git a/src/lib/evloop/compat_libevent.h b/src/lib/evloop/compat_libevent.h
index afe887a01..92724c369 100644
--- a/src/lib/evloop/compat_libevent.h
+++ b/src/lib/evloop/compat_libevent.h
@@ -13,6 +13,8 @@
 #include "lib/testsupport/testsupport.h"
 #include "lib/malloc/malloc.h"
 
+#include 
+
 void configure_libevent_logging(void);
 void suppress_libevent_log_msg(const char *msg);
 
@@ -68,6 +70,7 @@ typedef struct tor_libevent_cfg {
 } tor_libevent_cfg;
 
 void tor_libevent_initialize(tor_libevent_cfg *cfg);
+bool tor_libevent_is_initialized(void);
 MOCK_DECL(struct event_base *, tor_libevent_get_base, (void));
 const char *tor_libevent_get_method(void);
 void tor_check_libevent_header_compatibility(void);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.3.5] Merge branch 'maint-0.3.5' into release-0.3.5

2020-01-15 Thread teor
commit 792172ffec157594e9e35748a2de83e414ec5ab2
Merge: 23e1c1c35 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:28 2020 +1000

Merge branch 'maint-0.3.5' into release-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.0] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.4.0] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.2] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.1] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.2] Merge branch 'maint-0.4.1' into maint-0.4.2

2020-01-15 Thread teor
commit 48187248d3f79243590d60285708f3e2d45f8d8f
Merge: 7e111d0ea fb541ffca
Author: teor 
Date:   Thu Jan 16 10:00:47 2020 +1000

Merge branch 'maint-0.4.1' into maint-0.4.2

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.2] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.1] Merge branch 'maint-0.4.0' into maint-0.4.1

2020-01-15 Thread teor
commit fb541ffca31d4906642ffb3bbe6bb6079cfcb1c9
Merge: f5461a4bd 026f068bb
Author: teor 
Date:   Thu Jan 16 10:00:40 2020 +1000

Merge branch 'maint-0.4.0' into maint-0.4.1

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.1] Do not try to shut down the event loop when it is not initialized.

2020-01-15 Thread teor
commit 4d70e725d16abc2f85d54b91f50e75c37c765087
Author: Nick Mathewson 
Date:   Wed Nov 6 11:33:23 2019 -0500

Do not try to shut down the event loop when it is not initialized.

Doing so caused us to crash in some unusual circumstances, such as
using --verify-config to verify a configuration that failed during
the options_act() stage.

Fixes bug 32407; bugfix on 0.3.3.1-alpha.
---
 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/changes/ticket32407 b/changes/ticket32407
new file mode 100644
index 0..badb09abf
--- /dev/null
+++ b/changes/ticket32407
@@ -0,0 +1,4 @@
+  o Minor bugfixes (crash):
+- When running Tor with an option like --verify-config or --dump-config
+  that does not start the event loop, avoid crashing if we try to exit
+  early because of an error. Fixes bug 32407; bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c
index 6e2b300fb..64df495ba 100644
--- a/src/core/mainloop/mainloop.c
+++ b/src/core/mainloop/mainloop.c
@@ -774,6 +774,10 @@ tor_shutdown_event_loop_and_exit(int exitcode)
   main_loop_should_exit = 1;
   main_loop_exit_value = exitcode;
 
+  if (! tor_libevent_is_initialized()) {
+return; /* No event loop to shut down. */
+  }
+
   /* Die with an assertion failure in ten seconds, if for some reason we don't
* exit normally. */
   /*  We should consider this code if it's never used. */
diff --git a/src/lib/evloop/compat_libevent.c b/src/lib/evloop/compat_libevent.c
index 91eacb993..939d77f85 100644
--- a/src/lib/evloop/compat_libevent.c
+++ b/src/lib/evloop/compat_libevent.c
@@ -181,6 +181,16 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
   event_get_version(), tor_libevent_get_method());
 }
 
+/**
+ * Return true iff the libevent module has been successfully initialized,
+ * and not subsequently shut down.
+ **/
+bool
+tor_libevent_is_initialized(void)
+{
+  return the_event_base != NULL;
+}
+
 /** Return the current Libevent event base that we're set up to use. */
 MOCK_IMPL(struct event_base *,
 tor_libevent_get_base, (void))
diff --git a/src/lib/evloop/compat_libevent.h b/src/lib/evloop/compat_libevent.h
index afe887a01..92724c369 100644
--- a/src/lib/evloop/compat_libevent.h
+++ b/src/lib/evloop/compat_libevent.h
@@ -13,6 +13,8 @@
 #include "lib/testsupport/testsupport.h"
 #include "lib/malloc/malloc.h"
 
+#include 
+
 void configure_libevent_logging(void);
 void suppress_libevent_log_msg(const char *msg);
 
@@ -68,6 +70,7 @@ typedef struct tor_libevent_cfg {
 } tor_libevent_cfg;
 
 void tor_libevent_initialize(tor_libevent_cfg *cfg);
+bool tor_libevent_is_initialized(void);
 MOCK_DECL(struct event_base *, tor_libevent_get_base, (void));
 const char *tor_libevent_get_method(void);
 void tor_check_libevent_header_compatibility(void);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.2] Merge branch 'maint-0.4.0' into maint-0.4.1

2020-01-15 Thread teor
commit fb541ffca31d4906642ffb3bbe6bb6079cfcb1c9
Merge: f5461a4bd 026f068bb
Author: teor 
Date:   Thu Jan 16 10:00:40 2020 +1000

Merge branch 'maint-0.4.0' into maint-0.4.1

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.1] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.0] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.3.5] Do not try to shut down the event loop when it is not initialized.

2020-01-15 Thread teor
commit 4d70e725d16abc2f85d54b91f50e75c37c765087
Author: Nick Mathewson 
Date:   Wed Nov 6 11:33:23 2019 -0500

Do not try to shut down the event loop when it is not initialized.

Doing so caused us to crash in some unusual circumstances, such as
using --verify-config to verify a configuration that failed during
the options_act() stage.

Fixes bug 32407; bugfix on 0.3.3.1-alpha.
---
 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/changes/ticket32407 b/changes/ticket32407
new file mode 100644
index 0..badb09abf
--- /dev/null
+++ b/changes/ticket32407
@@ -0,0 +1,4 @@
+  o Minor bugfixes (crash):
+- When running Tor with an option like --verify-config or --dump-config
+  that does not start the event loop, avoid crashing if we try to exit
+  early because of an error. Fixes bug 32407; bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c
index 6e2b300fb..64df495ba 100644
--- a/src/core/mainloop/mainloop.c
+++ b/src/core/mainloop/mainloop.c
@@ -774,6 +774,10 @@ tor_shutdown_event_loop_and_exit(int exitcode)
   main_loop_should_exit = 1;
   main_loop_exit_value = exitcode;
 
+  if (! tor_libevent_is_initialized()) {
+return; /* No event loop to shut down. */
+  }
+
   /* Die with an assertion failure in ten seconds, if for some reason we don't
* exit normally. */
   /*  We should consider this code if it's never used. */
diff --git a/src/lib/evloop/compat_libevent.c b/src/lib/evloop/compat_libevent.c
index 91eacb993..939d77f85 100644
--- a/src/lib/evloop/compat_libevent.c
+++ b/src/lib/evloop/compat_libevent.c
@@ -181,6 +181,16 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
   event_get_version(), tor_libevent_get_method());
 }
 
+/**
+ * Return true iff the libevent module has been successfully initialized,
+ * and not subsequently shut down.
+ **/
+bool
+tor_libevent_is_initialized(void)
+{
+  return the_event_base != NULL;
+}
+
 /** Return the current Libevent event base that we're set up to use. */
 MOCK_IMPL(struct event_base *,
 tor_libevent_get_base, (void))
diff --git a/src/lib/evloop/compat_libevent.h b/src/lib/evloop/compat_libevent.h
index afe887a01..92724c369 100644
--- a/src/lib/evloop/compat_libevent.h
+++ b/src/lib/evloop/compat_libevent.h
@@ -13,6 +13,8 @@
 #include "lib/testsupport/testsupport.h"
 #include "lib/malloc/malloc.h"
 
+#include 
+
 void configure_libevent_logging(void);
 void suppress_libevent_log_msg(const char *msg);
 
@@ -68,6 +70,7 @@ typedef struct tor_libevent_cfg {
 } tor_libevent_cfg;
 
 void tor_libevent_initialize(tor_libevent_cfg *cfg);
+bool tor_libevent_is_initialized(void);
 MOCK_DECL(struct event_base *, tor_libevent_get_base, (void));
 const char *tor_libevent_get_method(void);
 void tor_check_libevent_header_compatibility(void);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Merge branch 'maint-0.4.0' into maint-0.4.1

2020-01-15 Thread teor
commit fb541ffca31d4906642ffb3bbe6bb6079cfcb1c9
Merge: f5461a4bd 026f068bb
Author: teor 
Date:   Thu Jan 16 10:00:40 2020 +1000

Merge branch 'maint-0.4.0' into maint-0.4.1

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.0] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.4.0] Do not try to shut down the event loop when it is not initialized.

2020-01-15 Thread teor
commit 4d70e725d16abc2f85d54b91f50e75c37c765087
Author: Nick Mathewson 
Date:   Wed Nov 6 11:33:23 2019 -0500

Do not try to shut down the event loop when it is not initialized.

Doing so caused us to crash in some unusual circumstances, such as
using --verify-config to verify a configuration that failed during
the options_act() stage.

Fixes bug 32407; bugfix on 0.3.3.1-alpha.
---
 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/changes/ticket32407 b/changes/ticket32407
new file mode 100644
index 0..badb09abf
--- /dev/null
+++ b/changes/ticket32407
@@ -0,0 +1,4 @@
+  o Minor bugfixes (crash):
+- When running Tor with an option like --verify-config or --dump-config
+  that does not start the event loop, avoid crashing if we try to exit
+  early because of an error. Fixes bug 32407; bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c
index 6e2b300fb..64df495ba 100644
--- a/src/core/mainloop/mainloop.c
+++ b/src/core/mainloop/mainloop.c
@@ -774,6 +774,10 @@ tor_shutdown_event_loop_and_exit(int exitcode)
   main_loop_should_exit = 1;
   main_loop_exit_value = exitcode;
 
+  if (! tor_libevent_is_initialized()) {
+return; /* No event loop to shut down. */
+  }
+
   /* Die with an assertion failure in ten seconds, if for some reason we don't
* exit normally. */
   /*  We should consider this code if it's never used. */
diff --git a/src/lib/evloop/compat_libevent.c b/src/lib/evloop/compat_libevent.c
index 91eacb993..939d77f85 100644
--- a/src/lib/evloop/compat_libevent.c
+++ b/src/lib/evloop/compat_libevent.c
@@ -181,6 +181,16 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
   event_get_version(), tor_libevent_get_method());
 }
 
+/**
+ * Return true iff the libevent module has been successfully initialized,
+ * and not subsequently shut down.
+ **/
+bool
+tor_libevent_is_initialized(void)
+{
+  return the_event_base != NULL;
+}
+
 /** Return the current Libevent event base that we're set up to use. */
 MOCK_IMPL(struct event_base *,
 tor_libevent_get_base, (void))
diff --git a/src/lib/evloop/compat_libevent.h b/src/lib/evloop/compat_libevent.h
index afe887a01..92724c369 100644
--- a/src/lib/evloop/compat_libevent.h
+++ b/src/lib/evloop/compat_libevent.h
@@ -13,6 +13,8 @@
 #include "lib/testsupport/testsupport.h"
 #include "lib/malloc/malloc.h"
 
+#include 
+
 void configure_libevent_logging(void);
 void suppress_libevent_log_msg(const char *msg);
 
@@ -68,6 +70,7 @@ typedef struct tor_libevent_cfg {
 } tor_libevent_cfg;
 
 void tor_libevent_initialize(tor_libevent_cfg *cfg);
+bool tor_libevent_is_initialized(void);
 MOCK_DECL(struct event_base *, tor_libevent_get_base, (void));
 const char *tor_libevent_get_method(void);
 void tor_check_libevent_header_compatibility(void);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.3.5] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Merge branch 'maint-0.4.1' into maint-0.4.2

2020-01-15 Thread teor
commit 48187248d3f79243590d60285708f3e2d45f8d8f
Merge: 7e111d0ea fb541ffca
Author: teor 
Date:   Thu Jan 16 10:00:47 2020 +1000

Merge branch 'maint-0.4.1' into maint-0.4.2




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Merge branch 'maint-0.3.5' into maint-0.4.0

2020-01-15 Thread teor
commit 026f068bb3aed9de0f1cc6792f6c9528b7b27db2
Merge: d96b35d66 19954cffd
Author: teor 
Date:   Thu Jan 16 10:00:32 2020 +1000

Merge branch 'maint-0.3.5' into maint-0.4.0

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Merge branch 'maint-0.4.2'

2020-01-15 Thread teor
commit 4025cbada6ab01247275faec8dd32ae857ef0fd5
Merge: f3cbc26bd 48187248d
Author: teor 
Date:   Thu Jan 16 10:00:55 2020 +1000

Merge branch 'maint-0.4.2'

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

2020-01-15 Thread teor
commit 19954cffd7710ccac778aa5cf15ae1bc6a5d56fa
Merge: 0b3763612 4d70e725d
Author: teor 
Date:   Thu Jan 16 09:57:27 2020 +1000

Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5

 changes/ticket32407  |  4 
 src/core/mainloop/mainloop.c |  4 
 src/lib/evloop/compat_libevent.c | 10 ++
 src/lib/evloop/compat_libevent.h |  3 +++
 4 files changed, 21 insertions(+)




___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] add_c_file: Fix "control line not preceded by a blank line"

2020-01-15 Thread teor
commit f3cbc26bdd0d26c5bd80d2c3bc40f90d70a814f5
Author: teor 
Date:   Thu Jan 16 09:38:26 2020 +1000

add_c_file: Fix "control line not preceded by a blank line"

Fix dirauth and relay module include.am add_c_file.py
"control line not preceded by a blank line" errors.

Also remove a duplicate ADD_C_FILE: SOURCES in the relay module.

Obviously correct fixes to already-reviewed code.
---
 src/feature/dirauth/include.am | 1 +
 src/feature/relay/include.am   | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/feature/dirauth/include.am b/src/feature/dirauth/include.am
index ec7b3b296..2ef629ae3 100644
--- a/src/feature/dirauth/include.am
+++ b/src/feature/dirauth/include.am
@@ -1,5 +1,6 @@
 
 # The Directory Authority module.
+
 # ADD_C_FILE: INSERT SOURCES HERE.
 MODULE_DIRAUTH_SOURCES =   \
src/feature/dirauth/authmode.c  \
diff --git a/src/feature/relay/include.am b/src/feature/relay/include.am
index aa9aa3adf..a4c025ae1 100644
--- a/src/feature/relay/include.am
+++ b/src/feature/relay/include.am
@@ -1,5 +1,5 @@
 
-# ADD_C_FILE: INSERT SOURCES HERE.
+# Legacy shared relay code: migrate to the relay module over time
 LIBTOR_APP_A_SOURCES +=\
src/feature/relay/dns.c \
src/feature/relay/ext_orport.c  \
@@ -9,6 +9,7 @@ LIBTOR_APP_A_SOURCES += \
src/feature/relay/selftest.c
 
 # The Relay module.
+
 # ADD_C_FILE: INSERT SOURCES HERE.
 MODULE_RELAY_SOURCES = \
src/feature/relay/routermode.c  \

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-misc_release] https://gitweb.torproject.org/translation.git/commit/?h=tails-misc_release

2020-01-15 Thread translation
commit 9c59b1a895385680239c1039f810aece91b5bf13
Author: Translation commit bot 
Date:   Wed Jan 15 22:48:34 2020 +

https://gitweb.torproject.org/translation.git/commit/?h=tails-misc_release
---
 en_GB.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/en_GB.po b/en_GB.po
index ca8eec86f9..e9123101cd 100644
--- a/en_GB.po
+++ b/en_GB.po
@@ -3,7 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Andi Chandler , 2014-2017,2019
+# Andi Chandler , 2014-2017,2019-2020
 # Billy Humphreys , 2014
 # newharha ehrara , 2015
 # Richard Shaylor , 2014
@@ -12,8 +12,8 @@ msgstr ""
 "Project-Id-Version: Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-01-06 11:20+0100\n"
-"PO-Revision-Date: 2020-01-06 13:47+\n"
-"Last-Translator: erinm\n"
+"PO-Revision-Date: 2020-01-15 22:46+\n"
+"Last-Translator: Andi Chandler \n"
 "Language-Team: English (United Kingdom) 
(http://www.transifex.com/otf/torproject/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [exonerator/release] Remove unnecessary method call.

2020-01-15 Thread karsten
commit a4187326e58ea40ef3f43d0a0e5a86fe3b6d9c89
Author: Karsten Loesing 
Date:   Wed Nov 20 16:39:05 2019 +0100

Remove unnecessary method call.
---
 .../org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
index fcc534f..47261fc 100644
--- 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
+++ 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
@@ -380,7 +380,7 @@ public class ExoneraTorDatabaseImporter {
   parseHistoryFile));
   for (Map.Entry historyEntry :
   nextImportHistory.entrySet()) {
-bw.write(String.valueOf(historyEntry.getValue()) + ","
+bw.write(historyEntry.getValue() + ","
 + historyEntry.getKey() + "\n");
   }
   bw.close();



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-misc] https://gitweb.torproject.org/translation.git/commit/?h=tails-misc

2020-01-15 Thread translation
commit 7b7e7387806f22746d7822953698bf288a70650a
Author: Translation commit bot 
Date:   Wed Jan 15 22:47:18 2020 +

https://gitweb.torproject.org/translation.git/commit/?h=tails-misc
---
 en_GB.po | 104 +++
 1 file changed, 52 insertions(+), 52 deletions(-)

diff --git a/en_GB.po b/en_GB.po
index 67819996dd..746a97a82c 100644
--- a/en_GB.po
+++ b/en_GB.po
@@ -3,7 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Andi Chandler , 2014-2017,2019
+# Andi Chandler , 2014-2017,2019-2020
 # Billy Humphreys , 2014
 # newharha ehrara , 2015
 # Richard Shaylor , 2014
@@ -12,8 +12,8 @@ msgstr ""
 "Project-Id-Version: Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-01-06 11:20+0100\n"
-"PO-Revision-Date: 2020-01-06 13:47+\n"
-"Last-Translator: carolyn \n"
+"PO-Revision-Date: 2020-01-15 22:46+\n"
+"Last-Translator: Andi Chandler \n"
 "Language-Team: English (United Kingdom) 
(http://www.transifex.com/otf/torproject/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -105,7 +105,7 @@ msgstr "_Exit"
 msgid ""
 "For debugging information, execute the following command: sudo tails-"
 "debugging-info"
-msgstr ""
+msgstr "For debugging information, execute the following command: sudo 
tails-debugging-info"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:244
 msgid ""
@@ -114,15 +114,15 @@ msgid ""
 "website.\\n\\nCheck your network connection, and restart Tails to try "
 "upgrading again.\\n\\nIf the problem persists, go to "
 "file:///usr/share/doc/tails/website/doc/upgrade/error/check.en.html"
-msgstr ""
+msgstr "An error occured while updating the signing key.\\n\\nThis 
prevents determining whether an upgrade is available from our 
website.\\n\\nCheck your network connection, and restart Tails to try 
upgrading again.\\n\\nIf the problem persists, go to 
file:///usr/share/doc/tails/website/doc/upgrade/error/check.en.html"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:250
 msgid "Error while updating the signing key"
-msgstr ""
+msgstr "Error while updating the signing key"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:279
 msgid "Error while checking for upgrades"
-msgstr ""
+msgstr "Error while checking for upgrades"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:282
 msgid ""
@@ -131,64 +131,64 @@ msgid ""
 "Check your network connection, and restart Tails to try upgrading again.\n"
 "\n"
 "If the problem persists, go to 
file:///usr/share/doc/tails/website/doc/upgrade/error/check.en.html"
-msgstr ""
+msgstr "Could not determine whether an upgrade is available from our 
website.\n\nCheck your network connection, and restart Tails to try 
upgrading again.\n\nIf the problem persists, go to 
file:///usr/share/doc/tails/website/doc/upgrade/error/check.en.html"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:297
 msgid "no automatic upgrade is available from our website for this version"
-msgstr ""
+msgstr "no automatic upgrade is available from our website for this version"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:303
 msgid "your device was not created using a USB image or Tails Installer"
-msgstr ""
+msgstr "your device was not created using a USB image or Tails Installer"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:308
 msgid "Tails was started from a DVD or a read-only device"
-msgstr ""
+msgstr "Tails was started from a DVD or a read-only device"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:313
 msgid "there is not enough free space on the Tails system partition"
-msgstr ""
+msgstr "there is not enough free space on the Tails system partition"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:318
 msgid "not enough memory is available on this system"
-msgstr ""
+msgstr "not enough memory is available on this system"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:324
 #, perl-brace-format
 msgid "No explanation available for reason '%{reason}s'."
-msgstr ""
+msgstr "No explanation available for reason '%{reason}s'."
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:345
 msgid "The system is up-to-date"
-msgstr ""
+msgstr "The system is up-to-date"
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:350
 msgid "This version of Tails is outdated, and may have security issues."
-msgstr ""
+msgstr "This version of Tails is outdated, and may have security issues."
 
 #: config/chroot_local-includes/usr/src/iuk/lib/Tails/IUK/Frontend.pm:382
 #, perl-brace-format
 msgid ""
 "The available incremental upgrade requires %{space_needed}s of free space on"
 " Tails system partition,  but only %{free_space}s is available."
-msgstr ""

[tor-commits] [exonerator/release] Avoid unnecessary continue and empty block.

2020-01-15 Thread karsten
commit e50f0204455c68b9b785232640cf289f4be827e1
Author: Karsten Loesing 
Date:   Wed Nov 20 15:51:57 2019 +0100

Avoid unnecessary continue and empty block.
---
 .../torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java   | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
index 57eb5df..fcc534f 100644
--- 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
+++ 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
@@ -76,14 +76,10 @@ public class ExoneraTorDatabaseImporter {
 try {
   BufferedReader br = new BufferedReader(new FileReader(configFile));
   while ((line = br.readLine()) != null) {
-if (line.startsWith("#") || line.length() < 1) {
-  continue;
-} else if (line.startsWith("ExoneraTorDatabaseJdbc")) {
+if (line.startsWith("ExoneraTorDatabaseJdbc")) {
   jdbcString = line.split(" ")[1];
 } else if (line.startsWith("ExoneraTorImportDirectory")) {
   importDirString = line.split(" ")[1];
-} else {
-  /* Ignore unrecognized configuration keys. */
 }
   }
   br.close();



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [exonerator/release] Update to latest metrics-base.

2020-01-15 Thread karsten
commit a28a9e86e70452fe0151bf43ec2266f8007e0d2d
Author: Karsten Loesing 
Date:   Tue Jan 14 22:05:23 2020 +0100

Update to latest metrics-base.
---
 src/build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/build b/src/build
index eb16cb3..264e498 16
--- a/src/build
+++ b/src/build
@@ -1 +1 @@
-Subproject commit eb16cb359db41722e6089bafb1e26808df4338df
+Subproject commit 264e498f54a20f7d299daaf2533d043f880e6a8b



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [exonerator/release] Bump version to 4.2.0-dev.

2020-01-15 Thread karsten
commit ec51d14df47ee9dae29a9e2cbfbc9a3ba55459f9
Author: Karsten Loesing 
Date:   Sat Nov 9 22:45:32 2019 +0100

Bump version to 4.2.0-dev.
---
 CHANGELOG.md | 3 +++
 build.xml| 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 632f622..9c0cf51 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# Changes in version 4.?.? - 2019-1?-??
+
+
 # Changes in version 4.2.0 - 2019-11-09
 
  * Medium changes
diff --git a/build.xml b/build.xml
index 38fee16..312f249 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
 
   
   
-  
+  
   
   
   https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [exonerator/release] Prepare for 4.3.0 release.

2020-01-15 Thread karsten
commit 4390e931b5e3f10f6dfe72779c4edca07b570fdf
Author: Karsten Loesing 
Date:   Wed Jan 15 23:40:54 2020 +0100

Prepare for 4.3.0 release.
---
 CHANGELOG.md | 3 ++-
 build.xml| 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index a7cc1ec..0db446b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,11 @@
-# Changes in version 4.?.? - 2019-1?-??
+# Changes in version 4.3.0 - 2020-01-15
 
  * Medium changes
- Turn absolute links to nearby addresses and translations into
  relative links to avoid falling back to http://. Use the base URL
  from the deployment descriptor for the printed permanent link,
  also to avoid falling back to http://.
+   - Update to metrics-lib 2.10.0.
 
 
 # Changes in version 4.2.0 - 2019-11-09
diff --git a/build.xml b/build.xml
index 312f249..c209699 100644
--- a/build.xml
+++ b/build.xml
@@ -9,8 +9,8 @@
 
   
   
-  
-  
+  
+  
   
   

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [exonerator/release] Use configured base URL for permanent link.

2020-01-15 Thread karsten
commit d165e4a1d5a29f82d932115e611011fc7ef97134
Author: Karsten Loesing 
Date:   Tue Jan 14 21:20:04 2020 +0100

Use configured base URL for permanent link.

Turn absolute links into relative links.

Fixes #27925.
---
 CHANGELOG.md   |  6 +++
 .../metrics/exonerator/ExoneraTorServlet.java  | 53 --
 2 files changed, 36 insertions(+), 23 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c0cf51..a7cc1ec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changes in version 4.?.? - 2019-1?-??
 
+ * Medium changes
+   - Turn absolute links to nearby addresses and translations into
+ relative links to avoid falling back to http://. Use the base URL
+ from the deployment descriptor for the printed permanent link,
+ also to avoid falling back to http://.
+
 
 # Changes in version 4.2.0 - 2019-11-09
 
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
index a74aa60..92cc8bb 100644
--- a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
+++ b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
@@ -140,8 +140,14 @@ public class ExoneraTorServlet extends HttpServlet {
   PrintWriter out = new PrintWriter(so);
   this.writeHeader(out, rb, langStr);
 
-  /* Obtain request URL without query string parameters for links. */
-  String requestUrl = request.getRequestURL().toString();
+  /* Obtain the current request URI for relative links and the configured
+   * base URL for absolute links like the printed permanent link. If no 
base
+   * URL has been configured, use the current request URL for the permanent
+   * link. */
+  String requestUri = request.getRequestURI();
+  String baseUrl = this.getServletContext().getInitParameter("baseUrl");
+  String permanentLinkUrl = (null != baseUrl)
+  ? (baseUrl + requestUri) : request.getRequestURL().toString();
 
   /* Write form. */
   boolean timestampOutOfRange = requestedDate.valid
@@ -157,43 +163,43 @@ public class ExoneraTorServlet extends HttpServlet {
   /* If both parameters are empty, don't print any summary and exit.
* This is the start page. */
   if ("".equals(relayIp) && requestedDate.empty) {
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
 
 /* If only one parameter is empty and the other is not, print summary
  * with warning message and exit. */
   } else if ("".equals(relayIp)) {
 this.writeSummaryNoIp(out, rb);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
   } else if (requestedDate.empty) {
 this.writeSummaryNoTimestamp(out, rb);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
 
 /* If there's an issue with parsing either of the parameters, print
  * summary with error message and exit. */
   } else if (relayIpHasError) {
 this.writeSummaryInvalidIp(out, rb, ipParameter);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
   } else if (!requestedDate.valid) {
 this.writeSummaryInvalidTimestamp(out, rb, requestedDate.asRequested);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
 
 /* If the timestamp is too recent, print summary with error message and
  * exit. */
   } else if (requestedDate.tooRecent) {
 this.writeSummaryTimestampTooRecent(out, rb);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
 
 /* If we were unable to connect to the database,
  * write an error message. */
   } else if (!successfullyConnectedToBackend) {
 this.writeSummaryUnableToConnectToBackend(out, rb);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
 
 /* Similarly, if we found the database to be empty,
  * write an error message, too. */
   } else if (firstDate.empty || lastDate.empty) {
 this.writeSummaryNoData(out, rb);
-this.writeFooter(out, rb, requestUrl, null, null);
+this.writeFooter(out, rb, requestUri, null, null);
 
 /* If the requested date is out of range, tell the user. */
   } else if (timestampOutOfRange) {
@@ -201,11 +207,11 @@ public class ExoneraTorServlet extends HttpServlet {
 this.writeSummaryTimestampOutsideRange(out, rb, requestedDate.asString,
 firstDate.asString, lastDate.date.isBefore(dayBeforeYesterday)
 ? 

[tor-commits] [exonerator/release] Update copyright to 2020.

2020-01-15 Thread karsten
commit 20501a55241d90a015ea7efcef3f18371c6c80c8
Author: Karsten Loesing 
Date:   Wed Jan 15 21:45:54 2020 +0100

Update copyright to 2020.
---
 LICENSE | 2 +-
 .../org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java   | 2 +-
 src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java | 2 +-
 .../org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java| 2 +-
 src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/exonerator/QueryResponse.java  | 2 +-
 src/main/java/org/torproject/metrics/exonerator/QueryServlet.java   | 2 +-
 src/main/java/org/torproject/metrics/exonerator/ServerMain.java | 2 +-
 src/main/resources/bootstrap-development.sh | 2 +-
 src/main/sql/exonerator.sql | 2 +-
 src/main/sql/exonerator2.sql| 2 +-
 src/test/java/org/torproject/metrics/exonerator/ExoneraTorDateTest.java | 2 +-
 .../java/org/torproject/metrics/exonerator/ExoneraTorServletTest.java   | 2 +-
 src/test/java/org/torproject/metrics/exonerator/QueryResponseTest.java  | 2 +-
 14 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/LICENSE b/LICENSE
index 49d61f8..d7b0663 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2010--2017 The Tor Project
+Copyright 2010--2020 The Tor Project
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
index 47261fc..c9cc6b9 100644
--- 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
+++ 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2018 The Tor Project
+/* Copyright 2011--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java
index 92d6b31..8e084d6 100644
--- a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java
+++ b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java
@@ -1,4 +1,4 @@
-/* Copyright 2017--2018 The Tor Project
+/* Copyright 2017--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
index fbe4e49..ebcbaca 100644
--- 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
+++ 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Tor Project
+/* Copyright 2018--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
index 92cc8bb..3ba42da 100644
--- a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
+++ b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2018 The Tor Project
+/* Copyright 2011--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git a/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java 
b/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java
index 6a8976a..aee8dbf 100644
--- a/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java
+++ b/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java
@@ -1,4 +1,4 @@
-/* Copyright 2017--2018 The Tor Project
+/* Copyright 2017--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git a/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java 
b/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java
index 760e385..85dec57 100644
--- a/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java
+++ b/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2017--2018 The Tor Project
+/* Copyright 2017--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git a/src/main/java/org/torproject/metrics/exonerator/ServerMain.java 
b/src/main/java/org/torproject/metrics/exonerator/ServerMain.java

[tor-commits] [exonerator/master] Bump version to 4.3.0-dev.

2020-01-15 Thread karsten
commit 06ec2db71aceb8ba0ca346f30742d46039bb7979
Author: Karsten Loesing 
Date:   Wed Jan 15 23:45:45 2020 +0100

Bump version to 4.3.0-dev.
---
 CHANGELOG.md | 3 +++
 build.xml| 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0db446b..9c87922 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# Changes in version 4.?.? - 2020-0?-??
+
+
 # Changes in version 4.3.0 - 2020-01-15
 
  * Medium changes
diff --git a/build.xml b/build.xml
index c209699..cdc919c 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
 
   
   
-  
+  
   
   
   https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [exonerator/master] Prepare for 4.3.0 release.

2020-01-15 Thread karsten
commit 4390e931b5e3f10f6dfe72779c4edca07b570fdf
Author: Karsten Loesing 
Date:   Wed Jan 15 23:40:54 2020 +0100

Prepare for 4.3.0 release.
---
 CHANGELOG.md | 3 ++-
 build.xml| 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index a7cc1ec..0db446b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,11 @@
-# Changes in version 4.?.? - 2019-1?-??
+# Changes in version 4.3.0 - 2020-01-15
 
  * Medium changes
- Turn absolute links to nearby addresses and translations into
  relative links to avoid falling back to http://. Use the base URL
  from the deployment descriptor for the printed permanent link,
  also to avoid falling back to http://.
+   - Update to metrics-lib 2.10.0.
 
 
 # Changes in version 4.2.0 - 2019-11-09
diff --git a/build.xml b/build.xml
index 312f249..c209699 100644
--- a/build.xml
+++ b/build.xml
@@ -9,8 +9,8 @@
 
   
   
-  
-  
+  
+  
   
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Add some real tests for the webstats module.

2020-01-15 Thread karsten
commit 3002d6bc6b6bf84953cf842cbf6b3b18dc944879
Author: Karsten Loesing 
Date:   Wed Dec 11 12:16:05 2019 +0100

Add some real tests for the webstats module.
---
 src/build  |   2 +-
 .../collector/webstats/SanitizeWeblogsTest.java| 290 -
 2 files changed, 287 insertions(+), 5 deletions(-)

diff --git a/src/build b/src/build
index eb16cb3..264e498 16
--- a/src/build
+++ b/src/build
@@ -1 +1 @@
-Subproject commit eb16cb359db41722e6089bafb1e26808df4338df
+Subproject commit 264e498f54a20f7d299daaf2533d043f880e6a8b
diff --git 
a/src/test/java/org/torproject/metrics/collector/webstats/SanitizeWeblogsTest.java
 
b/src/test/java/org/torproject/metrics/collector/webstats/SanitizeWeblogsTest.java
index a550c41..21617b5 100644
--- 
a/src/test/java/org/torproject/metrics/collector/webstats/SanitizeWeblogsTest.java
+++ 
b/src/test/java/org/torproject/metrics/collector/webstats/SanitizeWeblogsTest.java
@@ -4,17 +4,299 @@
 package org.torproject.metrics.collector.webstats;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
+import org.torproject.descriptor.Descriptor;
+import org.torproject.descriptor.DescriptorParseException;
+import org.torproject.descriptor.DescriptorSourceFactory;
+import org.torproject.descriptor.WebServerAccessLog;
+import org.torproject.metrics.collector.Main;
+import org.torproject.metrics.collector.conf.Configuration;
+import org.torproject.metrics.collector.conf.Key;
+
+import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.SortedMap;
+import java.util.TreeMap;
 
 public class SanitizeWeblogsTest {
 
+  /** Sample original web server access logs as input for tests. */
+  private static final String[][] inputLogs = new String[][] {
+  { "metrics.torproject.org-access.log-20191120.gz",
+  "0.0.0.0 - - [19/Nov/2019:00:00:00 +] "
+  + "\"GET /networksize.html HTTP/1.1\" 200 3269 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [19/Nov/2019:00:00:00 +] "
+  + "\"GET /networksize.png?start=2019-08-21=2019-11-19 HTTP/1.1\" 
"
+  + "200 39383 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [19/Nov/2019:00:00:00 +] "
+  + "\"GET /userstats-relay-country.html HTTP/1.1\" 200 7350 "
+  + "\"-\" \"-\" -\n"
+  + "0.0.0.0 - - [20/Nov/2019:00:00:00 +] "
+  + "\"GET /collector/recent/relay-descriptors/ HTTP/1.1\" 200 10227 "
+  + "\"-\" \"-\" -\n" },
+  { "metrics.torproject.org-access.log-20191121.gz",
+  "0.0.0.0 - - [20/Nov/2019:00:00:00 +] "
+  + "\"HEAD /collector/recent/relay-descriptors/microdescs/ "
+  + "HTTP/1.1\" 200 - \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [20/Nov/2019:00:00:00 +] "
+  + "\"HEAD /collector/recent/exit-lists/ HTTP/1.1\" 200 "
+  + "- \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [20/Nov/2019:00:00:00 +] "
+  + "\"GET /collector/archive/bridge-descriptors/extra-infos/ "
+  + "HTTP/1.1\" 200 48013 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [21/Nov/2019:00:00:00 +] "
+  + "\"GET /images/cc/sk.png HTTP/1.1\" 200 395 \"-\" \"-\" -\n" },
+  { "metrics.torproject.org-access.log-20191122.gz",
+  "0.0.0.0 - - [21/Nov/2019:00:00:00 +] "
+  + "\"GET /images/favicon.ico HTTP/1.1\" 200 1150 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [21/Nov/2019:00:00:00 +] "
+  + "\"GET /images/flags/authority.png HTTP/1.1\" 200 325 "
+  + "\"https://metrics.torproject.org/rs.html\; \"-\" -\n"
+  + "0.0.0.0 - - [21/Nov/2019:00:00:00 +] "
+  + "\"GET /news.atom HTTP/1.1\" 200 36362 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [22/Nov/2019:00:00:00 +] "
+  + "\"GET /onionperf-buildtimes.csv HTTP/1.1\" 200 270336 "
+  + "\"-\" \"-\" -\n" },
+  { "metrics.torproject.org-access.log-20191123.gz",
+  "0.0.0.0 - - [22/Nov/2019:00:00:00 +] "
+  + "\"GET /userstats-relay-country.html?"
+  + "start=2010-01-01=2019-11-22=vn=off HTTP/1.1\" "
+  + "200 35517 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [22/Nov/2019:00:00:00 +] "
+  + "\"GET /userstats-relay-country.png?"
+  + "start=2010-01-01=2019-11-22=vn=off HTTP/1.1\" "
+  + "200 28041 \"-\" \"-\" -\n"
+  + "0.0.0.0 - - [22/Nov/2019:00:00:00 +] "
+  + "\"GET /userstats-relay-country.png?"
+  + "start=2010-01-01=2019-11-22=vn=off HTTP/1.1\" "
+  + "200 28041 \"-\" \"-\" -\n"
+  + 

[tor-commits] [collector/release] Prepare for 1.14.0 release.

2020-01-15 Thread karsten
commit 3a9f05e01f1abe8315d25c780b3aab72376412f5
Author: Karsten Loesing 
Date:   Wed Jan 15 23:07:02 2020 +0100

Prepare for 1.14.0 release.
---
 CHANGELOG.md | 2 +-
 build.xml| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 028755f..898338c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 1.1?.? - 2019-1?-??
+# Changes in version 1.14.0 - 2020-01-15
 
  * Medium changes
- Give up on periodically checking the configuration file for
diff --git a/build.xml b/build.xml
index 312244f..5293d41 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
 
   
   
-  
+  
   
   
   

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Update to metrics-lib 2.10.0.

2020-01-15 Thread karsten
commit 27e41ea7393c24bc72429915dd74c309c2583fa2
Author: Karsten Loesing 
Date:   Wed Jan 15 22:58:17 2020 +0100

Update to metrics-lib 2.10.0.
---
 CHANGELOG.md | 1 +
 build.xml| 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb295d6..028755f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@
 
  * Minor changes
- Remove dependency on metrics-lib's internal package.
+   - Update to metrics-lib 2.10.0.
 
 
 # Changes in version 1.13.1 - 2019-11-11
diff --git a/build.xml b/build.xml
index c75b69e..312244f 100644
--- a/build.xml
+++ b/build.xml
@@ -12,7 +12,7 @@
   
   
   
-  
+  
   
 
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Update copyright to 2020.

2020-01-15 Thread karsten
commit d2a74b676a0d1c8563638ca3607a866b95877949
Author: Karsten Loesing 
Date:   Wed Jan 15 21:36:34 2020 +0100

Update copyright to 2020.
---
 LICENSE | 2 +-
 src/main/java/org/torproject/metrics/collector/Main.java| 2 +-
 .../torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java | 2 +-
 .../metrics/collector/bridgedescs/BridgeDescriptorParser.java   | 2 +-
 .../torproject/metrics/collector/bridgedescs/BridgeSnapshotReader.java  | 2 +-
 .../org/torproject/metrics/collector/bridgedescs/DescriptorBuilder.java | 2 +-
 .../metrics/collector/bridgedescs/SanitizedBridgesWriter.java   | 2 +-
 .../metrics/collector/bridgepools/BridgePoolAssignmentsProcessor.java   | 2 +-
 src/main/java/org/torproject/metrics/collector/conf/Annotation.java | 2 +-
 src/main/java/org/torproject/metrics/collector/conf/Configuration.java  | 2 +-
 .../org/torproject/metrics/collector/conf/ConfigurationException.java   | 2 +-
 src/main/java/org/torproject/metrics/collector/conf/Key.java| 2 +-
 src/main/java/org/torproject/metrics/collector/conf/SourceType.java | 2 +-
 src/main/java/org/torproject/metrics/collector/cron/CollecTorMain.java  | 2 +-
 src/main/java/org/torproject/metrics/collector/cron/Scheduler.java  | 2 +-
 src/main/java/org/torproject/metrics/collector/cron/ShutdownHook.java   | 2 +-
 .../java/org/torproject/metrics/collector/downloader/Downloader.java| 2 +-
 .../org/torproject/metrics/collector/exitlists/ExitListDownloader.java  | 2 +-
 .../java/org/torproject/metrics/collector/indexer/CreateIndexJson.java  | 2 +-
 .../java/org/torproject/metrics/collector/indexer/DirectoryNode.java| 2 +-
 src/main/java/org/torproject/metrics/collector/indexer/FileNode.java| 2 +-
 src/main/java/org/torproject/metrics/collector/indexer/IndexNode.java   | 2 +-
 src/main/java/org/torproject/metrics/collector/indexer/IndexerTask.java | 2 +-
 .../org/torproject/metrics/collector/onionperf/OnionPerfDownloader.java | 2 +-
 .../torproject/metrics/collector/persist/BandwidthFilePersistence.java  | 2 +-
 .../metrics/collector/persist/BridgeExtraInfoPersistence.java   | 2 +-
 .../metrics/collector/persist/BridgePoolAssignmentPersistence.java  | 2 +-
 .../metrics/collector/persist/BridgeServerDescriptorPersistence.java| 2 +-
 .../metrics/collector/persist/BridgedbMetricsPersistence.java   | 2 +-
 .../org/torproject/metrics/collector/persist/ConsensusPersistence.java  | 2 +-
 .../org/torproject/metrics/collector/persist/DescriptorPersistence.java | 2 +-
 .../org/torproject/metrics/collector/persist/ExitlistPersistence.java   | 2 +-
 .../org/torproject/metrics/collector/persist/ExtraInfoPersistence.java  | 2 +-
 .../torproject/metrics/collector/persist/MicroConsensusPersistence.java | 2 +-
 .../org/torproject/metrics/collector/persist/OnionPerfPersistence.java  | 2 +-
 .../java/org/torproject/metrics/collector/persist/PersistenceUtils.java | 2 +-
 .../metrics/collector/persist/ServerDescriptorPersistence.java  | 2 +-
 .../torproject/metrics/collector/persist/SnowflakeStatsPersistence.java | 2 +-
 .../org/torproject/metrics/collector/persist/StatusPersistence.java | 2 +-
 .../java/org/torproject/metrics/collector/persist/VotePersistence.java  | 2 +-
 .../metrics/collector/persist/WebServerAccessLogPersistence.java| 2 +-
 .../java/org/torproject/metrics/collector/persist/package-info.java | 2 +-
 .../java/org/torproject/metrics/collector/relaydescs/ArchiveReader.java | 2 +-
 .../java/org/torproject/metrics/collector/relaydescs/ArchiveWriter.java | 2 +-
 .../metrics/collector/relaydescs/CachedRelayDescriptorReader.java   | 2 +-
 .../org/torproject/metrics/collector/relaydescs/ReferenceChecker.java   | 2 +-
 .../metrics/collector/relaydescs/RelayDescriptorDownloader.java | 2 +-
 .../torproject/metrics/collector/relaydescs/RelayDescriptorParser.java  | 2 +-
 .../metrics/collector/snowflake/SnowflakeStatsDownloader.java   | 2 +-
 src/main/java/org/torproject/metrics/collector/sync/Criterium.java  | 2 +-
 .../java/org/torproject/metrics/collector/sync/ProcessCriterium.java| 2 +-
 src/main/java/org/torproject/metrics/collector/sync/SyncManager.java| 2 +-
 .../java/org/torproject/metrics/collector/sync/SyncPersistence.java | 2 +-
 src/main/java/org/torproject/metrics/collector/sync/package-info.java   | 2 +-
 src/main/java/org/torproject/metrics/collector/webstats/FileType.java   | 2 +-
 src/main/java/org/torproject/metrics/collector/webstats/LogFileMap.java | 2 +-
 .../java/org/torproject/metrics/collector/webstats/LogMetadata.java | 2 +-
 .../java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java | 2 +-
 .../torproject/metrics/collector/webstats/WebServerAccessLogImpl.java   | 2 +-
 .../torproject/metrics/collector/webstats/WebServerAccessLogLine.java   | 2 +-
 src/main/resources/bootstrap-development.sh

[tor-commits] [collector/release] Remove dependency on DescriptorIndexCollector.

2020-01-15 Thread karsten
commit cc3aa57e57cdcd632a6a8a360f08880f0ec57242
Author: Karsten Loesing 
Date:   Fri Nov 22 18:49:46 2019 +0100

Remove dependency on DescriptorIndexCollector.
---
 src/main/java/org/torproject/metrics/collector/sync/SyncManager.java | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java 
b/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java
index 005501f..5a1a142 100644
--- a/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java
+++ b/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java
@@ -8,7 +8,6 @@ import org.torproject.descriptor.DescriptorCollector;
 import org.torproject.descriptor.DescriptorReader;
 import org.torproject.descriptor.DescriptorSourceFactory;
 import org.torproject.descriptor.UnparseableDescriptor;
-import org.torproject.descriptor.index.DescriptorIndexCollector;
 import org.torproject.metrics.collector.conf.Configuration;
 import org.torproject.metrics.collector.conf.ConfigurationException;
 import org.torproject.metrics.collector.conf.Key;
@@ -47,8 +46,8 @@ public class SyncManager {
   String marker, Configuration conf) throws ConfigurationException {
 Path basePath = conf.getPath(Key.SyncPath);
 
-// The default implementation is less robust.
-DescriptorCollector descriptorCollector = new DescriptorIndexCollector();
+DescriptorCollector descriptorCollector
+= DescriptorSourceFactory.createDescriptorCollector();
 for (URL source : sources) {
   try {
 File storage = new File(basePath.toFile(),



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Remove dependency on metrics-lib's log package (3/4).

2020-01-15 Thread karsten
commit c11b61465a644940559b97c93a769fda84287970
Author: Karsten Loesing 
Date:   Sat Nov 23 17:55:17 2019 +0100

Remove dependency on metrics-lib's log package (3/4).

 - Remove package-internal interfaces InternalLogDescriptor and
   InternalWebServerAccessLog.
---
 .../persist/WebServerAccessLogPersistence.java |  4 ++--
 .../collector/webstats/InternalLogDescriptor.java  | 28 --
 .../webstats/InternalWebServerAccessLog.java   | 17 -
 .../collector/webstats/LogDescriptorImpl.java  |  8 +++
 .../collector/webstats/SanitizeWeblogs.java|  4 ++--
 .../collector/webstats/WebServerAccessLogImpl.java |  4 ++--
 6 files changed, 10 insertions(+), 55 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
index 6afb97e..0001957 100644
--- 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
+++ 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
@@ -5,7 +5,7 @@ package org.torproject.metrics.collector.persist;
 
 import org.torproject.descriptor.WebServerAccessLog;
 import org.torproject.metrics.collector.webstats.FileType;
-import org.torproject.metrics.collector.webstats.InternalWebServerAccessLog;
+import org.torproject.metrics.collector.webstats.WebServerAccessLogImpl;
 
 import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
@@ -14,7 +14,7 @@ import java.time.format.DateTimeFormatter;
 public class WebServerAccessLogPersistence
 extends DescriptorPersistence {
 
-  public static final String SEP = InternalWebServerAccessLog.SEP;
+  public static final String SEP = WebServerAccessLogImpl.SEP;
   public static final FileType COMPRESSION = FileType.XZ;
 
   private DateTimeFormatter yearPattern = DateTimeFormatter.ofPattern("");
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
deleted file mode 100644
index ac7d689..000
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2017--2018 The Tor Project
- * See LICENSE for licensing information */
-
-package org.torproject.metrics.collector.webstats;
-
-import org.torproject.descriptor.LogDescriptor;
-
-/**
- * This interface provides methods for internal use only.
- *
- * @since 2.2.0
- */
-public interface InternalLogDescriptor extends LogDescriptor {
-
-  /** Logfile name parts separator. */
-  String SEP = "_";
-
-  /**
-   * Set the descriptor's bytes.
-   *
-   * @since 2.2.0
-   */
-  void setRawDescriptorBytes(byte[] bytes);
-
-  /** Return the descriptor's preferred compression. */
-  String getCompressionType();
-}
-
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalWebServerAccessLog.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/InternalWebServerAccessLog.java
deleted file mode 100644
index 817b8d5..000
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalWebServerAccessLog.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2018 The Tor Project
- * See LICENSE for licensing information */
-
-package org.torproject.metrics.collector.webstats;
-
-/**
- * This interface provides methods for internal use only.
- *
- * @since 2.2.0
- */
-public interface InternalWebServerAccessLog extends InternalLogDescriptor {
-
-  /** The log's name should include this string. */
-  String MARKER = "access.log";
-
-}
-
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
index c0b0c69..e20be27 100644
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
+++ 
b/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
@@ -20,8 +20,10 @@ import java.util.regex.Pattern;
  *
  * @since 2.2.0
  */
-public abstract class LogDescriptorImpl
-implements LogDescriptor, InternalLogDescriptor {
+public abstract class LogDescriptorImpl implements LogDescriptor {
+
+  /** Logfile name parts separator. */
+  public static final String SEP = "_";
 
   /** The log's file name should contain this string. */
   public static final String MARKER = ".log";
@@ -78,7 +80,6 @@ public abstract class LogDescriptorImpl
 }
   }
 
-  @Override
   public String getCompressionType() {
 return this.fileType.name().toLowerCase();
   }
@@ -88,7 +89,6 @@ public abstract class LogDescriptorImpl
 return this.logBytes;
   }
 
-  @Override
   public void setRawDescriptorBytes(byte[] bytes) {
 this.logBytes = bytes;
   }
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java 

[tor-commits] [collector/release] Stop checking and reloading configuration file.

2020-01-15 Thread karsten
commit de10fcd5b3bc9d29c0e2a011728e34fbe9b0fd5d
Author: Karsten Loesing 
Date:   Wed Nov 20 13:03:25 2019 +0100

Stop checking and reloading configuration file.

Removes a deprecation warning and simplifies code.

Implements #32554.
---
 CHANGELOG.md   |  4 ++
 .../org/torproject/metrics/collector/Main.java |  2 +-
 .../metrics/collector/conf/Configuration.java  | 59 +++---
 .../metrics/collector/cron/CollecTorMain.java  | 28 +-
 src/main/resources/collector.properties|  9 
 .../org/torproject/metrics/collector/MainTest.java |  6 +--
 .../metrics/collector/conf/ConfigurationTest.java  | 58 -
 7 files changed, 16 insertions(+), 150 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5293207..b55d7a4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changes in version 1.1?.? - 2019-1?-??
 
+ * Medium changes
+   - Give up on periodically checking the configuration file for
+ updates and reloading it in case of changes.
+
 
 # Changes in version 1.13.1 - 2019-11-11
 
diff --git a/src/main/java/org/torproject/metrics/collector/Main.java 
b/src/main/java/org/torproject/metrics/collector/Main.java
index 3438bda..861567f 100644
--- a/src/main/java/org/torproject/metrics/collector/Main.java
+++ b/src/main/java/org/torproject/metrics/collector/Main.java
@@ -85,7 +85,7 @@ public class Main {
 writeDefaultConfig(confPath);
 return;
   } else {
-conf.setWatchableSourceAndLoad(confPath);
+conf.loadAndCheckConfiguration(confPath);
   }
   Scheduler.getInstance().scheduleModuleRuns(collecTorMains, conf);
 } catch (ConfigurationException ce) {
diff --git 
a/src/main/java/org/torproject/metrics/collector/conf/Configuration.java 
b/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
index 4bb581b..cfdd9c8 100644
--- a/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
+++ b/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
@@ -3,85 +3,40 @@
 
 package org.torproject.metrics.collector.conf;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.nio.file.attribute.FileTime;
 import java.util.EnumSet;
-import java.util.Observable;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 
 /**
  * Initialize configuration with defaults from collector.properties,
  * unless a configuration properties file is available.
  */
-public class Configuration extends Observable implements Cloneable {
-
-  private static final Logger logger = LoggerFactory.getLogger(
-  Configuration.class);
-
-  private final ScheduledExecutorService scheduler =
-  Executors.newScheduledThreadPool(1);
+public class Configuration {
 
   public static final String FIELDSEP = ",";
 
   private final Properties props = new Properties();
-  private Path configurationFile;
-  private FileTime ft;
 
   /**
-   * Load the configuration from the given path and start monitoring changes.
-   * If the file was changed, re-read and inform all observers.
+   * Load the configuration from the given path.
*/
-  public void setWatchableSourceAndLoad(final Path confPath) throws
+  public void loadAndCheckConfiguration(Path confPath) throws
   ConfigurationException {
-this.configurationFile = confPath;
-try {
-  ft = Files.getLastModifiedTime(confPath);
-  reload();
+try (FileInputStream fis
+ = new FileInputStream(confPath.toFile())) {
+  this.props.load(fis);
   anythingActivated();
 } catch (IOException e) {
-  throw new ConfigurationException("Cannot watch configuration file. "
+  throw new ConfigurationException("Cannot load configuration file. "
   + "Reason: " + e.getMessage(), e);
 }
-if (this.getBool(Key.RunOnce)) { // no need to watch
-  return;
-}
-this.scheduler.scheduleAtFixedRate(() -> {
-  logger.trace("Check configuration file.");
-  try {
-FileTime ftNow = Files.getLastModifiedTime(confPath);
-if (ft.compareTo(ftNow) < 0) {
-  logger.info("Configuration file was changed.");
-  reload();
-  setChanged();
-  notifyObservers(null);
-}
-ft = ftNow;
-  } catch (Throwable th) { // Catch all and keep running.
-logger.error("Cannot reload configuration file.", th);
-  }
-}, 5, 5, TimeUnit.SECONDS);
-  }
-
-  private void reload() throws IOException {
-props.clear();
-try (FileInputStream fis
-= new 

[tor-commits] [collector/release] Avoid reprocessing webstats files.

2020-01-15 Thread karsten
commit d48163379c2604626a62da775aafe68b5be62186
Author: Karsten Loesing 
Date:   Wed Dec 11 12:22:40 2019 +0100

Avoid reprocessing webstats files.

Web servers typically provide us with the last 14 days of request
logs. We shouldn't process the whole 14 days over and over. Instead we
should only process new logs files and any other log files containing
log lines from newly written dates.

In some cases web servers stop serving a given virtual host or stop
acting as web server at all. However, in these cases we're left with
14 days of logs per virtual host. Ideally, these logs would get
cleaned up, but until that's the case, we should at least not
reprocess these files over and over.

In order to avoid reprocessing webstats files, we need a new state
file with log dates contained in given input files. We use that state
file to determine which of the previously processed webstats files to
re-process, so that we can write complete daily logs.
---
 CHANGELOG.md   |   1 +
 .../metrics/collector/webstats/LogMetadata.java|  17 +++
 .../collector/webstats/SanitizeWeblogs.java| 155 ++---
 .../collector/webstats/WebServerAccessLogImpl.java |  19 +++
 4 files changed, 170 insertions(+), 22 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 73abdea..fe7937c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
  * Medium changes
- Give up on periodically checking the configuration file for
  updates and reloading it in case of changes.
+   - Avoid reprocessing webstats files.
 
  * Minor changes
- Remove dependency on metrics-lib's internal package.
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java 
b/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java
index 879e8d7..b30c13a 100644
--- a/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java
+++ b/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java
@@ -81,5 +81,22 @@ public class LogMetadata {
 }
 return Optional.ofNullable(metadata);
   }
+
+  @Override
+  public boolean equals(Object other) {
+if (this == other) {
+  return true;
+}
+if (other == null || getClass() != other.getClass()) {
+  return false;
+}
+LogMetadata that = (LogMetadata) other;
+return path.toString().equals(that.path.toString());
+  }
+
+  @Override
+  public int hashCode() {
+return path.hashCode();
+  }
 }
 
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java 
b/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
index fc7c64f..b3fee06 100644
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
+++ 
b/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
@@ -25,14 +25,18 @@ import org.slf4j.LoggerFactory;
 import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -56,8 +60,10 @@ public class SanitizeWeblogs extends CollecTorMain {
   private static final int LIMIT = 2;
 
   private static final String WEBSTATS = "webstats";
-  private String outputPathName;
-  private String recentPathName;
+  private Path outputDirectory;
+  private Path recentDirectory;
+  private Path processedWebstatsFile;
+
   private boolean limits;
 
   /**
@@ -84,14 +90,22 @@ public class SanitizeWeblogs extends CollecTorMain {
 try {
   Files.createDirectories(this.config.getPath(Key.OutputPath));
   Files.createDirectories(this.config.getPath(Key.RecentPath));
-  this.outputPathName = this.config.getPath(Key.OutputPath).toString();
-  this.recentPathName = this.config.getPath(Key.RecentPath).toString();
+  Files.createDirectories(this.config.getPath(Key.StatsPath));
+  this.outputDirectory = this.config.getPath(Key.OutputPath);
+  this.recentDirectory = this.config.getPath(Key.RecentPath);
+  this.processedWebstatsFile = this.config.getPath(Key.StatsPath)
+  .resolve("processed-webstats");
   this.limits = this.config.getBool(Key.WebstatsLimits);
   Set sources = this.config.getSourceTypeSet(
   Key.WebstatsSources);
   if (sources.contains(SourceType.Local)) {
 log.info("Processing logs using batch value {}.", BATCH);
-findCleanWrite(this.config.getPath(Key.WebstatsLocalOrigins));
+Map> previouslyProcessedWebstats
+= 

[tor-commits] [collector/release] Remove String[][] as configuration value type.

2020-01-15 Thread karsten
commit edf505ae06479b86a87e81ea0a2266a1cad2f7fc
Author: Karsten Loesing 
Date:   Thu Nov 21 09:49:49 2019 +0100

Remove String[][] as configuration value type.
---
 .../metrics/collector/conf/Configuration.java  | 24 --
 .../metrics/collector/conf/ConfigurationTest.java  |  7 ---
 2 files changed, 31 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/conf/Configuration.java 
b/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
index afda281..4bb581b 100644
--- a/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
+++ b/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
@@ -36,7 +36,6 @@ public class Configuration extends Observable implements 
Cloneable {
   Executors.newScheduledThreadPool(1);
 
   public static final String FIELDSEP = ",";
-  public static final String ARRAYSEP = ";";
 
   private final Properties props = new Properties();
   private Path configurationFile;
@@ -143,29 +142,6 @@ public class Configuration extends Observable implements 
Cloneable {
   }
 
   /**
-   * Returns {@code String[][]} from a property. Commas seperate array elements
-   * and semicolons separate arrays, e.g.,
-   * {@code propertyname = a1, a2, a3; b1, b2, b3}
-   */
-  public String[][] getStringArrayArray(Key key) throws ConfigurationException 
{
-try {
-  checkClass(key, String[][].class);
-  String[] interim = props.getProperty(key.name()).split(ARRAYSEP);
-  String[][] res = new String[interim.length][];
-  for (int i = 0; i < interim.length; i++) {
-res[i] = interim[i].trim().split(FIELDSEP);
-for (int j = 0; j < res[i].length; j++) {
-  res[i][j] = res[i][j].trim();
-}
-  }
-  return res;
-} catch (RuntimeException re) {
-  throw new ConfigurationException("Corrupt property: " + key
-  + " reason: " + re.getMessage(), re);
-}
-  }
-
-  /**
* Returns {@code String[]} from a property. Commas seperate array elements,
* e.g.,
* {@code propertyname = a1, a2, a3}
diff --git 
a/src/test/java/org/torproject/metrics/collector/conf/ConfigurationTest.java 
b/src/test/java/org/torproject/metrics/collector/conf/ConfigurationTest.java
index 887f3ae..e01aba2 100644
--- a/src/test/java/org/torproject/metrics/collector/conf/ConfigurationTest.java
+++ b/src/test/java/org/torproject/metrics/collector/conf/ConfigurationTest.java
@@ -148,13 +148,6 @@ public class ConfigurationTest {
   }
 
   @Test(expected = ConfigurationException.class)
-  public void testArrayArrayValueException() throws Exception {
-Configuration conf = new Configuration();
-conf.setProperty(Key.RelayCacheOrigins.name(), "");
-conf.getStringArrayArray(Key.OutputPath);
-  }
-
-  @Test(expected = ConfigurationException.class)
   public void testPathValueException() throws Exception {
 Configuration conf = new Configuration();
 conf.setProperty(Key.RelayLocalOrigins.name(), "\\\u:");



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Remove dependency on metrics-lib's log package (1/4).

2020-01-15 Thread karsten
commit 859476ecaec2164e0d84bbba4377da11c90034b2
Author: Karsten Loesing 
Date:   Sat Nov 23 17:13:22 2019 +0100

Remove dependency on metrics-lib's log package (1/4).

 - Copy types from metrics-lib to this code base.
 - Update package and import statements.
 - Copy remaining parts of metrics-lib's FileType.
---
 .../persist/WebServerAccessLogPersistence.java |   2 +-
 .../metrics/collector/webstats/FileType.java   |  44 +
 .../collector/webstats/InternalLogDescriptor.java  |  63 +++
 .../webstats/InternalWebServerAccessLog.java   |  17 ++
 .../collector/webstats/LogDescriptorImpl.java  | 166 +++
 .../metrics/collector/webstats/LogMetadata.java|   2 +-
 .../collector/webstats/SanitizeWeblogs.java|   4 -
 .../collector/webstats/WebServerAccessLogImpl.java | 173 
 .../collector/webstats/WebServerAccessLogLine.java | 182 +
 9 files changed, 647 insertions(+), 6 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
index 848fa2e..0f862b4 100644
--- 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
+++ 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
@@ -4,8 +4,8 @@
 package org.torproject.metrics.collector.persist;
 
 import org.torproject.descriptor.WebServerAccessLog;
-import org.torproject.descriptor.log.InternalWebServerAccessLog;
 import org.torproject.metrics.collector.webstats.FileType;
+import org.torproject.metrics.collector.webstats.InternalWebServerAccessLog;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/FileType.java 
b/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
index 79dcf21..15b1e00 100644
--- a/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
+++ b/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
@@ -12,6 +12,8 @@ import 
org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 
@@ -69,10 +71,52 @@ public enum FileType {
   }
 
   /**
+   * Compresses the given bytes in memory and returns the compressed bytes.
+   */
+  public byte[] compress(byte[] bytes) throws Exception {
+ByteArrayOutputStream baos = new ByteArrayOutputStream();
+try (OutputStream os = this.outputStream(baos)) {
+  os.write(bytes);
+  os.flush();
+}
+return baos.toByteArray();
+  }
+
+  /**
+   * Compresses the given InputStream and returns an OutputStream.
+   */
+  public OutputStream compress(OutputStream os) throws Exception {
+return this.outputStream(os);
+  }
+
+  /**
* Decompresses the given InputStream and returns an OutputStream.
*/
   public InputStream decompress(InputStream is) throws Exception {
 return this.inputStream(is);
   }
+
+  /**
+   * Decompresses the given bytes in memory and returns the decompressed bytes.
+   *
+   * @since 2.2.0
+   */
+  public byte[] decompress(byte[] bytes) throws Exception {
+if (0 == bytes.length) {
+  return bytes;
+}
+try (InputStream is
+= this.inputStream(new ByteArrayInputStream(bytes));
+ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
+  int readByte = is.read();
+  while (readByte > 0) {
+baos.write(readByte);
+readByte = is.read();
+  }
+  baos.flush();
+  return baos.toByteArray();
+}
+  }
+
 }
 
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
new file mode 100644
index 000..3a8a1f0
--- /dev/null
+++ 
b/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
@@ -0,0 +1,63 @@
+/* Copyright 2017--2018 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.metrics.collector.webstats;
+
+import org.torproject.descriptor.DescriptorParseException;
+import org.torproject.descriptor.LogDescriptor;
+
+/**
+ * This interface provides methods for internal use only.
+ *
+ * @since 2.2.0
+ */
+public interface InternalLogDescriptor extends LogDescriptor {
+
+  /** Logfile name parts separator. */
+  String SEP = "_";
+
+  /**
+   * Validate log lines.
+   *
+   * @since 2.2.0
+   */
+  void validate() throws DescriptorParseException;
+
+  /**
+   * Set the {@code Validator} that will perform the validation on log
+   * lines.
+   *
+   * Usually set by the implementing class.
+   *
+   * @since 2.2.0
+   */
+  void setValidator(Validator 

[tor-commits] [collector/release] Fix two JavaDocs issues with package-info.java.

2020-01-15 Thread karsten
commit 3bbc4db433979867cfcbac08eb7a698d4259a009
Author: Karsten Loesing 
Date:   Wed Nov 20 11:53:11 2019 +0100

Fix two JavaDocs issues with package-info.java.
---
 .../java/org/torproject/metrics/collector/persist/package-info.java | 6 +++---
 .../java/org/torproject/metrics/collector/sync/package-info.java| 3 +--
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/persist/package-info.java 
b/src/main/java/org/torproject/metrics/collector/persist/package-info.java
index 11d3939..75ec95e 100644
--- a/src/main/java/org/torproject/metrics/collector/persist/package-info.java
+++ b/src/main/java/org/torproject/metrics/collector/persist/package-info.java
@@ -1,11 +1,11 @@
 /* Copyright 2016--2018 The Tor Project
  * See LICENSE for licensing information */
 
-package org.torproject.metrics.collector.persist;
-
-/** This package containes decorating classes for descriptors that
+/** This package contains decorating classes for descriptors that
  * simply determine the two storage paths based on the descriptor
  * and further parameters like acquisition time.
  * All special persistence classes extend
  * {@code DescriptorPersistence}.
  */
+package org.torproject.metrics.collector.persist;
+
diff --git 
a/src/main/java/org/torproject/metrics/collector/sync/package-info.java 
b/src/main/java/org/torproject/metrics/collector/sync/package-info.java
index 08a6cdd..53e64b7 100644
--- a/src/main/java/org/torproject/metrics/collector/sync/package-info.java
+++ b/src/main/java/org/torproject/metrics/collector/sync/package-info.java
@@ -1,8 +1,6 @@
 /* Copyright 2016--2018 The Tor Project
  * See LICENSE for licensing information */
 
-package org.torproject.metrics.collector.sync;
-
 /** This package coordinates syncing and merging the fetched data.
  * The central class for this process is {@code SyncManager}, which
  * coordinates download from other instances and merging the new data
@@ -10,4 +8,5 @@ package org.torproject.metrics.collector.sync;
  * Storing data to the file system is facilitated by
  * {@code SyncPersistence}.
  */
+package org.torproject.metrics.collector.sync;
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Remove dependency on metrics-lib's log package (2/4).

2020-01-15 Thread karsten
commit ea1b1b4f6ab11e7ac933b0e00d5f8c040e4cc11e
Author: Karsten Loesing 
Date:   Sat Nov 23 17:43:45 2019 +0100

Remove dependency on metrics-lib's log package (2/4).

 - Remove unused code.
---
 .../persist/WebServerAccessLogPersistence.java |  5 --
 .../collector/webstats/InternalLogDescriptor.java  | 35 --
 .../collector/webstats/LogDescriptorImpl.java  | 53 +-
 .../metrics/collector/webstats/LogFileMap.java | 26 ---
 .../collector/webstats/SanitizeWeblogs.java|  2 +-
 .../collector/webstats/WebServerAccessLogImpl.java | 38 +---
 6 files changed, 4 insertions(+), 155 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
index 0f862b4..6afb97e 100644
--- 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
+++ 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
@@ -7,9 +7,6 @@ import org.torproject.descriptor.WebServerAccessLog;
 import org.torproject.metrics.collector.webstats.FileType;
 import org.torproject.metrics.collector.webstats.InternalWebServerAccessLog;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
 import java.time.format.DateTimeFormatter;
@@ -19,8 +16,6 @@ public class WebServerAccessLogPersistence
 
   public static final String SEP = InternalWebServerAccessLog.SEP;
   public static final FileType COMPRESSION = FileType.XZ;
-  private static final Logger log
-  = LoggerFactory.getLogger(WebServerAccessLogPersistence.class);
 
   private DateTimeFormatter yearPattern = DateTimeFormatter.ofPattern("");
   private DateTimeFormatter monthPattern = DateTimeFormatter.ofPattern("MM");
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
index 3a8a1f0..ac7d689 100644
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
+++ 
b/src/main/java/org/torproject/metrics/collector/webstats/InternalLogDescriptor.java
@@ -3,7 +3,6 @@
 
 package org.torproject.metrics.collector.webstats;
 
-import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.LogDescriptor;
 
 /**
@@ -17,23 +16,6 @@ public interface InternalLogDescriptor extends LogDescriptor 
{
   String SEP = "_";
 
   /**
-   * Validate log lines.
-   *
-   * @since 2.2.0
-   */
-  void validate() throws DescriptorParseException;
-
-  /**
-   * Set the {@code Validator} that will perform the validation on log
-   * lines.
-   *
-   * Usually set by the implementing class.
-   *
-   * @since 2.2.0
-   */
-  void setValidator(Validator validator);
-
-  /**
* Set the descriptor's bytes.
*
* @since 2.2.0
@@ -42,22 +24,5 @@ public interface InternalLogDescriptor extends LogDescriptor 
{
 
   /** Return the descriptor's preferred compression. */
   String getCompressionType();
-
-  /**
-   * Provides a single function for validating a single log line.
-   *
-   * @since 2.2.0
-   */
-  interface Validator {
-
-/**
- * Verifies a log line.
- *
- * @since 2.2.0
- */
-boolean validate(String line);
-
-  }
-
 }
 
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
index d13c85a..c0b0c69 100644
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
+++ 
b/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
@@ -3,25 +3,17 @@
 
 package org.torproject.metrics.collector.webstats;
 
-import org.torproject.descriptor.Descriptor;
 import org.torproject.descriptor.DescriptorParseException;
 import org.torproject.descriptor.LogDescriptor;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 /**
  * Base class for log descriptors.
@@ -34,11 +26,6 @@ public abstract class LogDescriptorImpl
   /** The log's file name should contain this string. */
   public static final String MARKER = ".log";
 
-  private static final int unrecognizedLinesLimit = 3;
-
-  private static final Logger log
-  = LoggerFactory.getLogger(LogDescriptorImpl.class);
-
   private static Pattern filenamePattern = Pattern.compile(
   "(?:\\S*)" + MARKER + SEP + 

[tor-commits] [collector/release] Bump version to 1.13.1-dev.

2020-01-15 Thread karsten
commit d3d63bb1d8eaaf2c33486d68181fbb199041c9a5
Author: Karsten Loesing 
Date:   Mon Nov 11 10:19:39 2019 +0100

Bump version to 1.13.1-dev.
---
 CHANGELOG.md | 3 +++
 build.xml| 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 174f2e1..5293207 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# Changes in version 1.1?.? - 2019-1?-??
+
+
 # Changes in version 1.13.1 - 2019-11-11
 
  * Minor changes
diff --git a/build.xml b/build.xml
index e91dae3..c75b69e 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
 
   
   
-  
+  
   
   
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Remove dependency on metrics-lib's internal package.

2020-01-15 Thread karsten
commit 5a0e6be21c2de4b35e4111364b3ecd7caf424164
Author: Karsten Loesing 
Date:   Fri Nov 22 17:54:26 2019 +0100

Remove dependency on metrics-lib's internal package.

The only functionality contained in metrics-lib's internal package is
file (de-)compression, which in turn uses a third-party library that
we're using anyway. This is a weak reason for depending on our own
library for this functionality. Removing this dependency will make it
easier to make changes to our library in the future.

The new FileType class is based on a copy of the same enum type in
metrics-lib without @since tags and without methods that we don't use.
---
 CHANGELOG.md   |  3 +
 .../persist/WebServerAccessLogPersistence.java |  2 +-
 .../metrics/collector/webstats/FileType.java   | 78 ++
 .../metrics/collector/webstats/LogMetadata.java|  2 -
 .../collector/webstats/SanitizeWeblogs.java|  1 -
 5 files changed, 82 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b55d7a4..73abdea 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
- Give up on periodically checking the configuration file for
  updates and reloading it in case of changes.
 
+ * Minor changes
+   - Remove dependency on metrics-lib's internal package.
+
 
 # Changes in version 1.13.1 - 2019-11-11
 
diff --git 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
index b10f706..848fa2e 100644
--- 
a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
+++ 
b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
@@ -4,8 +4,8 @@
 package org.torproject.metrics.collector.persist;
 
 import org.torproject.descriptor.WebServerAccessLog;
-import org.torproject.descriptor.internal.FileType;
 import org.torproject.descriptor.log.InternalWebServerAccessLog;
+import org.torproject.metrics.collector.webstats.FileType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/FileType.java 
b/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
new file mode 100644
index 000..79dcf21
--- /dev/null
+++ b/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
@@ -0,0 +1,78 @@
+/* Copyright 2016--2019 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.metrics.collector.webstats;
+
+import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
+import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
+import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
+import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * These enums provide compression functionality.
+ *
+ * {@link #findType} determines the compression type by the given extension.
+ * Compression can also be zero-compression, which is currently provided by
+ * the PLAIN and JSON enums.
+ */
+public enum FileType {
+
+  BZ2(BZip2CompressorInputStream.class, BZip2CompressorOutputStream.class),
+  GZ(GzipCompressorInputStream.class, GzipCompressorOutputStream.class),
+  JSON(BufferedInputStream.class, BufferedOutputStream.class),
+  PLAIN(BufferedInputStream.class, BufferedOutputStream.class),
+  XZ(XZCompressorInputStream.class, XZCompressorOutputStream.class);
+
+  private final Class inClass;
+  private final Class outClass;
+
+  FileType(Class in, Class out) 
{
+this.inClass = in;
+this.outClass = out;
+  }
+
+  /**
+   * Returns {@code valueOf} or the default enum {@link #PLAIN}, i.e.,
+   * this method doesn't throw any exceptions and allways returns a valid enum.
+   */
+  public static FileType findType(String ext) {
+FileType res;
+try {
+  res = FileType.valueOf(ext.toUpperCase());
+  return res;
+} catch (IllegalArgumentException | NullPointerException re) {
+  return PLAIN;
+}
+  }
+
+  /**
+   * Return the appropriate input stream.
+   */
+  public InputStream inputStream(InputStream is) throws Exception {
+return this.inClass.getConstructor(new Class[]{InputStream.class})
+.newInstance(is);
+  }
+
+  /**
+   * Return the appropriate output stream.
+   */
+  public OutputStream outputStream(OutputStream os) throws Exception {
+return this.outClass.getConstructor(new Class[]{OutputStream.class})
+.newInstance(os);
+  }
+
+  /**
+   * Decompresses the given InputStream and 

[tor-commits] [collector/release] Remember processed files between module runs.

2020-01-15 Thread karsten
commit 741401a0daffda52fd1de81b29b276ed9e939ba5
Author: Karsten Loesing 
Date:   Tue Jan 7 13:30:28 2020 +0100

Remember processed files between module runs.

The three recently added modules to archive Snowflake statistics,
bridge pool assignments, and BridgeDB metrics have in common that they
process any input files regardless of whether they already processed
them before.

The problem is that the input files processed by these modules are
either never removed (Snowflake statistics) or only removed manually
by the operator (bridge pool assignments and BridgeDB statistics).

The effect is that non-recent BridgeDB metrics and bridge pool
assignments are being placed in the indexed/recent/ directory in the
next execution after they are deleted for being older than 72 hours.
The same would happen with Snowflake statistics after the operator
removes them from the out/ directory.

The fix is to use a state file containing file names of previously
processed files and only process a file not found in there. This is
the same approach as taken for bridge descriptor tarballs.
---
 CHANGELOG.md   |  3 ++
 .../bridgedb/BridgedbMetricsProcessor.java | 18 +
 .../BridgePoolAssignmentsProcessor.java| 19 +
 .../metrics/collector/cron/CollecTorMain.java  | 47 ++
 .../snowflake/SnowflakeStatsDownloader.java| 13 ++
 5 files changed, 100 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe7937c..fb295d6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
- Give up on periodically checking the configuration file for
  updates and reloading it in case of changes.
- Avoid reprocessing webstats files.
+   - Remember processed files between module runs for archived
+ Snowflake statistics, bridge pool assignments, and BridgeDB
+ metrics.
 
  * Minor changes
- Remove dependency on metrics-lib's internal package.
diff --git 
a/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
 
b/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
index c6b939b..0073ee3 100644
--- 
a/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
+++ 
b/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
@@ -24,7 +24,9 @@ import java.nio.file.Paths;
 import java.time.Instant;
 import java.time.temporal.ChronoUnit;
 import java.util.Arrays;
+import java.util.SortedSet;
 import java.util.Stack;
+import java.util.TreeSet;
 
 public class BridgedbMetricsProcessor extends CollecTorMain {
 
@@ -40,6 +42,11 @@ public class BridgedbMetricsProcessor extends CollecTorMain {
   private File inputDirectory;
 
   /**
+   * File containing file names of previously parsed BridgeDB metrics files.
+   */
+  private Path parsedBridgedbMetricsFile;
+
+  /**
* Directory for writing BridgeDB statistics files to be archived in 
tarballs.
*/
   private String outputPathName;
@@ -88,11 +95,19 @@ public class BridgedbMetricsProcessor extends CollecTorMain 
{
   protected void startProcessing() throws ConfigurationException {
 logger.info("Starting BridgeDB statistics module of CollecTor.");
 this.initializeConfiguration();
+SortedSet previouslyProcessedFiles = this.readProcessedFiles(
+this.parsedBridgedbMetricsFile);
+SortedSet processedFiles = new TreeSet<>();
 logger.info("Reading BridgeDB statistics files in {}.",
 this.inputDirectory);
 for (Descriptor descriptor
 : DescriptorSourceFactory.createDescriptorReader()
 .readDescriptors(this.inputDirectory)) {
+  processedFiles.add(descriptor.getDescriptorFile().toPath());
+  if (previouslyProcessedFiles.contains(
+  descriptor.getDescriptorFile().toPath())) {
+continue;
+  }
   if (descriptor instanceof BridgedbMetrics) {
 BridgedbMetrics bridgedbMetrics = (BridgedbMetrics) descriptor;
 BridgedbMetricsPersistence persistence
@@ -114,6 +129,7 @@ public class BridgedbMetricsProcessor extends CollecTorMain 
{
 }
 logger.info("Cleaning up directory {} containing recent files.",
 this.recentPathName);
+this.writeProcessedFiles(this.parsedBridgedbMetricsFile, processedFiles);
 this.cleanUpRsyncDirectory();
 logger.info("Finished processing BridgeDB statistics file(s).");
   }
@@ -123,6 +139,8 @@ public class BridgedbMetricsProcessor extends CollecTorMain 
{
* storing them in instance attributes.
*/
   private void initializeConfiguration() throws ConfigurationException {
+this.parsedBridgedbMetricsFile = this.config.getPath(Key.StatsPath)
+.resolve("processed-bridgedb-metrics");
 this.outputPathName = config.getPath(Key.OutputPath).toString();
 this.recentPathName = config.getPath(Key.RecentPath).toString();

[tor-commits] [collector/release] Remove dependency on metrics-lib's log package (4/4).

2020-01-15 Thread karsten
commit 8263cc7bdbb0a632f12a84fb2051dd9a25c28142
Author: Karsten Loesing 
Date:   Sat Nov 23 18:07:41 2019 +0100

Remove dependency on metrics-lib's log package (4/4).

 - Remove package-internal abstract class.
---
 .../collector/webstats/LogDescriptorImpl.java  | 117 -
 .../collector/webstats/SanitizeWeblogs.java|   2 +-
 .../collector/webstats/WebServerAccessLogImpl.java |  82 +--
 3 files changed, 73 insertions(+), 128 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
 
b/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
deleted file mode 100644
index e20be27..000
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/LogDescriptorImpl.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2017--2018 The Tor Project
- * See LICENSE for licensing information */
-
-package org.torproject.metrics.collector.webstats;
-
-import org.torproject.descriptor.DescriptorParseException;
-import org.torproject.descriptor.LogDescriptor;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Base class for log descriptors.
- *
- * @since 2.2.0
- */
-public abstract class LogDescriptorImpl implements LogDescriptor {
-
-  /** Logfile name parts separator. */
-  public static final String SEP = "_";
-
-  /** The log's file name should contain this string. */
-  public static final String MARKER = ".log";
-
-  private static Pattern filenamePattern = Pattern.compile(
-  "(?:\\S*)" + MARKER + SEP + "(?:[0-9a-zA-Z]*)(?:\\.?)([a-zA-Z2]*)");
-
-  private final File descriptorFile;
-
-  /** Byte array for plain, i.e. uncompressed, log data. */
-  private byte[] logBytes;
-
-  private FileType fileType;
-
-  private List unrecognizedLines = new ArrayList<>();
-
-  /**
-   * This constructor performs basic operations on the given bytes.
-   *
-   * An unknown compression type (see {@link #getCompressionType})
-   * is interpreted as missing compression.  In this case the bytes
-   * will be compressed to the given compression type.
-   *
-   * @since 2.2.0
-   */
-  protected LogDescriptorImpl(byte[] logBytes, File descriptorFile,
-  String logName) throws DescriptorParseException {
-this.logBytes = logBytes;
-this.descriptorFile = descriptorFile;
-try {
-  Matcher mat = filenamePattern.matcher(logName);
-  if (!mat.find()) {
-throw new DescriptorParseException(
-"Log file name doesn't comply to standard: " + logName);
-  }
-  this.fileType = FileType.findType(mat.group(1).toUpperCase());
-  if (FileType.PLAIN == this.fileType) {
-this.fileType = FileType.XZ;
-this.logBytes = this.fileType.compress(this.logBytes);
-  }
-} catch (Exception ex) {
-  throw new DescriptorParseException("Cannot parse file "
-  + logName + " from file " + descriptorFile.getName(), ex);
-}
-  }
-
-  @Override
-  public InputStream decompressedByteStream() throws DescriptorParseException {
-try {
-  return this.fileType.decompress(new ByteArrayInputStream(this.logBytes));
-} catch (Exception ex) {
-  throw new DescriptorParseException("Cannot provide deflated stream of "
-  + this.descriptorFile + ".", ex);
-}
-  }
-
-  public String getCompressionType() {
-return this.fileType.name().toLowerCase();
-  }
-
-  @Override
-  public byte[] getRawDescriptorBytes() {
-return this.logBytes;
-  }
-
-  public void setRawDescriptorBytes(byte[] bytes) {
-this.logBytes = bytes;
-  }
-
-  @Override
-  public int getRawDescriptorLength() {
-return this.logBytes.length;
-  }
-
-  @Override
-  public List getAnnotations() {
-return Collections.emptyList();
-  }
-
-  @Override
-  public List getUnrecognizedLines() {
-return this.unrecognizedLines;
-  }
-
-  @Override
-  public File getDescriptorFile() {
-return descriptorFile;
-  }
-
-}
-
diff --git 
a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java 
b/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
index 51318f8..fc7c64f 100644
--- 
a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
+++ 
b/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
@@ -135,7 +135,7 @@ public class SanitizeWeblogs extends CollecTorMain {
 
   private void storeSortedAndForget(String virtualHost, String physicalHost,
   LocalDate date, Map lineCounts) {
-String name = new StringJoiner(LogDescriptorImpl.SEP)
+String name = new StringJoiner(WebServerAccessLogImpl.SEP)
 .add(virtualHost).add(physicalHost)
 .add(WebServerAccessLogImpl.MARKER)
 .add(date.format(DateTimeFormatter.BASIC_ISO_DATE))
diff --git 

[tor-commits] [collector/release] Remove final modifier from private method.

2020-01-15 Thread karsten
commit ccdad654f27aa90cd9c86273c5a7f03871e2c3ec
Author: Karsten Loesing 
Date:   Wed Nov 20 16:44:25 2019 +0100

Remove final modifier from private method.
---
 src/main/java/org/torproject/metrics/collector/conf/Configuration.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/conf/Configuration.java 
b/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
index 56be34c..afda281 100644
--- a/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
+++ b/src/main/java/org/torproject/metrics/collector/conf/Configuration.java
@@ -77,7 +77,7 @@ public class Configuration extends Observable implements 
Cloneable {
 }, 5, 5, TimeUnit.SECONDS);
   }
 
-  private final void reload() throws IOException {
+  private void reload() throws IOException {
 props.clear();
 try (FileInputStream fis
 = new FileInputStream(configurationFile.toFile())) {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Make inner class static.

2020-01-15 Thread karsten
commit 86f8001590225327411cb8b7aa18dba0397deb96
Author: Karsten Loesing 
Date:   Wed Nov 20 15:14:15 2019 +0100

Make inner class static.
---
 .../torproject/metrics/collector/bridgedescs/TarballTestBuilder.java| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/src/test/java/org/torproject/metrics/collector/bridgedescs/TarballTestBuilder.java
 
b/src/test/java/org/torproject/metrics/collector/bridgedescs/TarballTestBuilder.java
index e2f4c40..08dca84 100644
--- 
a/src/test/java/org/torproject/metrics/collector/bridgedescs/TarballTestBuilder.java
+++ 
b/src/test/java/org/torproject/metrics/collector/bridgedescs/TarballTestBuilder.java
@@ -26,7 +26,7 @@ class TarballTestBuilder {
 
   /** Internal helper class to store details about a file contained in the
* tarball. */
-  private class TarballFile {
+  private static class TarballFile {
 
 /** Last modified time of the file. */
 private long modifiedMillis;



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Tweak DownloaderTest a bit.

2020-01-15 Thread karsten
commit 5d5d2eba7fb1c1fda3a0a16fe1cb5daf84f8ec47
Author: Karsten Loesing 
Date:   Wed Nov 20 12:00:15 2019 +0100

Tweak DownloaderTest a bit.
---
 .../metrics/collector/downloader/DownloaderTest.java  | 15 ++-
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git 
a/src/test/java/org/torproject/metrics/collector/downloader/DownloaderTest.java 
b/src/test/java/org/torproject/metrics/collector/downloader/DownloaderTest.java
index 0617940..aef8c0c 100644
--- 
a/src/test/java/org/torproject/metrics/collector/downloader/DownloaderTest.java
+++ 
b/src/test/java/org/torproject/metrics/collector/downloader/DownloaderTest.java
@@ -15,7 +15,6 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.SocketTimeoutException;
 import java.net.URL;
@@ -42,21 +41,19 @@ public class DownloaderTest {
*/
   private static class HttpUrlStreamHandler extends URLStreamHandler {
 
-private Map connections = new HashMap();
+private Map connections = new HashMap<>();
 
 @Override
-protected URLConnection openConnection(URL url) throws IOException {
-  return connections.get(url);
+protected URLConnection openConnection(URL url) {
+  return this.connections.get(url);
 }
 
 private void resetConnections() {
-  connections = new HashMap();
+  this.connections = new HashMap<>();
 }
 
-private HttpUrlStreamHandler addConnection(URL url,
-URLConnection urlConnection) {
-  connections.put(url, urlConnection);
-  return this;
+private void addConnection(URL url, URLConnection urlConnection) {
+  this.connections.put(url, urlConnection);
 }
   }
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Fix minor JavaDoc issue.

2020-01-15 Thread karsten
commit 38234a37884b091ac3b06e027bc2a92c019f6f11
Author: Karsten Loesing 
Date:   Wed Nov 20 11:47:48 2019 +0100

Fix minor JavaDoc issue.
---
 src/main/java/org/torproject/metrics/collector/conf/Key.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/torproject/metrics/collector/conf/Key.java 
b/src/main/java/org/torproject/metrics/collector/conf/Key.java
index d59438b..d0b8a5a 100644
--- a/src/main/java/org/torproject/metrics/collector/conf/Key.java
+++ b/src/main/java/org/torproject/metrics/collector/conf/Key.java
@@ -89,7 +89,7 @@ public enum Key {
   private static Set keys;
 
   /**
-   * @param Class of key value.
+   * @param clazz Class of key value.
*/
   Key(Class clazz) {
 this.clazz = clazz;



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Fix logging bug.

2020-01-15 Thread karsten
commit e25b39757cc464e0450f88e3779b9c987d003d58
Author: Karsten Loesing 
Date:   Wed Nov 20 11:54:46 2019 +0100

Fix logging bug.
---
 src/main/java/org/torproject/metrics/collector/cron/Scheduler.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/torproject/metrics/collector/cron/Scheduler.java 
b/src/main/java/org/torproject/metrics/collector/cron/Scheduler.java
index db10205..054f03f 100644
--- a/src/main/java/org/torproject/metrics/collector/cron/Scheduler.java
+++ b/src/main/java/org/torproject/metrics/collector/cron/Scheduler.java
@@ -58,7 +58,7 @@ public final class Scheduler implements ThreadFactory {
 try {
   gracePeriodMinutes = conf.getLong(Key.ShutdownGraceWaitMinutes);
 } catch (ConfigurationException ce) {
-  logger.warn("Cannot read grace period: {}", ce);
+  logger.warn("Cannot read grace period.", ce);
   gracePeriodMinutes = 10L;
 }
 List> runOnceMains = new ArrayList<>();



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/release] Use StandardCharsets.US_ASCII instead of "US-ASCII".

2020-01-15 Thread karsten
commit 7338d79d1abcfd04857a10818d076d6a7917649b
Author: Karsten Loesing 
Date:   Wed Nov 20 11:49:54 2019 +0100

Use StandardCharsets.US_ASCII instead of "US-ASCII".
---
 .../collector/bridgedescs/BridgeDescriptorParser.java|  3 ++-
 .../collector/bridgedescs/BridgeSnapshotReader.java  |  3 ++-
 .../collector/bridgedescs/SanitizedBridgesWriter.java|  6 +++---
 .../metrics/collector/relaydescs/ArchiveReader.java  |  2 +-
 .../relaydescs/CachedRelayDescriptorReader.java  |  7 ---
 .../collector/relaydescs/RelayDescriptorParser.java  |  9 +
 .../collector/relaydescs/ReferenceCheckerTest.java   | 16 
 7 files changed, 25 insertions(+), 21 deletions(-)

diff --git 
a/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeDescriptorParser.java
 
b/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeDescriptorParser.java
index 04460c8..778d187 100644
--- 
a/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeDescriptorParser.java
+++ 
b/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeDescriptorParser.java
@@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
 
 public class BridgeDescriptorParser {
 
@@ -33,7 +34,7 @@ public class BridgeDescriptorParser {
   String authorityFingerprint) {
 try {
   BufferedReader br = new BufferedReader(new StringReader(
-  new String(allData, "US-ASCII")));
+  new String(allData, StandardCharsets.US_ASCII)));
   String line = br.readLine();
   if (line == null) {
 return;
diff --git 
a/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeSnapshotReader.java
 
b/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeSnapshotReader.java
index 68ee28b..041807e 100644
--- 
a/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeSnapshotReader.java
+++ 
b/src/main/java/org/torproject/metrics/collector/bridgedescs/BridgeSnapshotReader.java
@@ -20,6 +20,7 @@ import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
@@ -139,7 +140,7 @@ public class BridgeSnapshotReader {
 }
 String fileDigest = Hex.encodeHexString(DigestUtils.sha1(
 allData));
-String ascii = new String(allData, "US-ASCII");
+String ascii = new String(allData, StandardCharsets.US_ASCII);
 BufferedReader br3 = new BufferedReader(new StringReader(
 ascii));
 String firstLine;
diff --git 
a/src/main/java/org/torproject/metrics/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/metrics/collector/bridgedescs/SanitizedBridgesWriter.java
index 921396c..45f2a1a 100644
--- 
a/src/main/java/org/torproject/metrics/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/metrics/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -470,7 +470,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
 try {
   DescriptorBuilder scrubbed = new DescriptorBuilder();
   BufferedReader br = new BufferedReader(new StringReader(new String(
-  data, "US-ASCII")));
+  data, StandardCharsets.US_ASCII)));
   String line;
   String mostRecentDescPublished = null;
   byte[] fingerprintBytes = null;
@@ -682,7 +682,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
 String masterKeyEd25519FromIdentityEd25519 = null;
 DescriptorBuilder scrubbed = new DescriptorBuilder();
 try (BufferedReader br = new BufferedReader(new StringReader(
-new String(data, "US-ASCII" {
+new String(data, StandardCharsets.US_ASCII {
   scrubbed.append(Annotation.BridgeServer.toString());
   String line;
   String masterKeyEd25519 = null;
@@ -1112,7 +1112,7 @@ public class SanitizedBridgesWriter extends CollecTorMain 
{
 String masterKeyEd25519FromIdentityEd25519 = null;
 try {
   BufferedReader br = new BufferedReader(new StringReader(new String(
-  data, "US-ASCII")));
+  data, StandardCharsets.US_ASCII)));
   String line;
   DescriptorBuilder scrubbed = null;
   String hashedBridgeIdentity;
diff --git 
a/src/main/java/org/torproject/metrics/collector/relaydescs/ArchiveReader.java 
b/src/main/java/org/torproject/metrics/collector/relaydescs/ArchiveReader.java
index fee46c9..3326833 100644
--- 
a/src/main/java/org/torproject/metrics/collector/relaydescs/ArchiveReader.java
+++ 
b/src/main/java/org/torproject/metrics/collector/relaydescs/ArchiveReader.java
@@ -184,7 +184,7 @@ public class ArchiveReader {
   bis.close();
   

[tor-commits] [translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal

2020-01-15 Thread translation
commit c55f9b762f22c8524b42a0112913ba93a5476fb5
Author: Translation commit bot 
Date:   Wed Jan 15 22:23:56 2020 +

https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
 contents+ru.po | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contents+ru.po b/contents+ru.po
index f2a6396707..94ed840d22 100644
--- a/contents+ru.po
+++ b/contents+ru.po
@@ -4255,6 +4255,8 @@ msgid ""
 "If you are unable to connect to an onion service, please see [I cannot reach"
 " X.onion!](../../onionservices/onionservices-3)."
 msgstr ""
+"Если у вас проблемы с доступом к 
onion-ресурсу, пожалуйста, см. страницу [Я "
+"не могу открыть ресурс 
.onion](../../onionservices/onionservices-3)."
 
 #: https//support.torproject.org/censorship/censorship-7/
 #: (content/censorship/censorship-7/contents+en.lrquestion.title)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Prepare for 1.14.0 release.

2020-01-15 Thread karsten
commit 3a9f05e01f1abe8315d25c780b3aab72376412f5
Author: Karsten Loesing 
Date:   Wed Jan 15 23:07:02 2020 +0100

Prepare for 1.14.0 release.
---
 CHANGELOG.md | 2 +-
 build.xml| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 028755f..898338c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 1.1?.? - 2019-1?-??
+# Changes in version 1.14.0 - 2020-01-15
 
  * Medium changes
- Give up on periodically checking the configuration file for
diff --git a/build.xml b/build.xml
index 312244f..5293d41 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
 
   
   
-  
+  
   
   
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Bump version to 1.14.0-dev.

2020-01-15 Thread karsten
commit c75f0c781ec45b6b56aedea5738692d0404bdc8a
Author: Karsten Loesing 
Date:   Wed Jan 15 23:20:01 2020 +0100

Bump version to 1.14.0-dev.
---
 CHANGELOG.md | 3 +++
 build.xml| 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 898338c..d3088c3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# Changes in version 1.1?.? - 2020-0?-??
+
+
 # Changes in version 1.14.0 - 2020-01-15
 
  * Medium changes
diff --git a/build.xml b/build.xml
index 5293d41..5d90b46 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
 
   
   
-  
+  
   
   
   

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Update to metrics-lib 2.10.0.

2020-01-15 Thread karsten
commit 27e41ea7393c24bc72429915dd74c309c2583fa2
Author: Karsten Loesing 
Date:   Wed Jan 15 22:58:17 2020 +0100

Update to metrics-lib 2.10.0.
---
 CHANGELOG.md | 1 +
 build.xml| 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb295d6..028755f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@
 
  * Minor changes
- Remove dependency on metrics-lib's internal package.
+   - Update to metrics-lib 2.10.0.
 
 
 # Changes in version 1.13.1 - 2019-11-11
diff --git a/build.xml b/build.xml
index c75b69e..312244f 100644
--- a/build.xml
+++ b/build.xml
@@ -12,7 +12,7 @@
   
   
   
-  
+  
   
 
   

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Remember processed files between module runs.

2020-01-15 Thread karsten
commit 741401a0daffda52fd1de81b29b276ed9e939ba5
Author: Karsten Loesing 
Date:   Tue Jan 7 13:30:28 2020 +0100

Remember processed files between module runs.

The three recently added modules to archive Snowflake statistics,
bridge pool assignments, and BridgeDB metrics have in common that they
process any input files regardless of whether they already processed
them before.

The problem is that the input files processed by these modules are
either never removed (Snowflake statistics) or only removed manually
by the operator (bridge pool assignments and BridgeDB statistics).

The effect is that non-recent BridgeDB metrics and bridge pool
assignments are being placed in the indexed/recent/ directory in the
next execution after they are deleted for being older than 72 hours.
The same would happen with Snowflake statistics after the operator
removes them from the out/ directory.

The fix is to use a state file containing file names of previously
processed files and only process a file not found in there. This is
the same approach as taken for bridge descriptor tarballs.
---
 CHANGELOG.md   |  3 ++
 .../bridgedb/BridgedbMetricsProcessor.java | 18 +
 .../BridgePoolAssignmentsProcessor.java| 19 +
 .../metrics/collector/cron/CollecTorMain.java  | 47 ++
 .../snowflake/SnowflakeStatsDownloader.java| 13 ++
 5 files changed, 100 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe7937c..fb295d6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
- Give up on periodically checking the configuration file for
  updates and reloading it in case of changes.
- Avoid reprocessing webstats files.
+   - Remember processed files between module runs for archived
+ Snowflake statistics, bridge pool assignments, and BridgeDB
+ metrics.
 
  * Minor changes
- Remove dependency on metrics-lib's internal package.
diff --git 
a/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
 
b/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
index c6b939b..0073ee3 100644
--- 
a/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
+++ 
b/src/main/java/org/torproject/metrics/collector/bridgedb/BridgedbMetricsProcessor.java
@@ -24,7 +24,9 @@ import java.nio.file.Paths;
 import java.time.Instant;
 import java.time.temporal.ChronoUnit;
 import java.util.Arrays;
+import java.util.SortedSet;
 import java.util.Stack;
+import java.util.TreeSet;
 
 public class BridgedbMetricsProcessor extends CollecTorMain {
 
@@ -40,6 +42,11 @@ public class BridgedbMetricsProcessor extends CollecTorMain {
   private File inputDirectory;
 
   /**
+   * File containing file names of previously parsed BridgeDB metrics files.
+   */
+  private Path parsedBridgedbMetricsFile;
+
+  /**
* Directory for writing BridgeDB statistics files to be archived in 
tarballs.
*/
   private String outputPathName;
@@ -88,11 +95,19 @@ public class BridgedbMetricsProcessor extends CollecTorMain 
{
   protected void startProcessing() throws ConfigurationException {
 logger.info("Starting BridgeDB statistics module of CollecTor.");
 this.initializeConfiguration();
+SortedSet previouslyProcessedFiles = this.readProcessedFiles(
+this.parsedBridgedbMetricsFile);
+SortedSet processedFiles = new TreeSet<>();
 logger.info("Reading BridgeDB statistics files in {}.",
 this.inputDirectory);
 for (Descriptor descriptor
 : DescriptorSourceFactory.createDescriptorReader()
 .readDescriptors(this.inputDirectory)) {
+  processedFiles.add(descriptor.getDescriptorFile().toPath());
+  if (previouslyProcessedFiles.contains(
+  descriptor.getDescriptorFile().toPath())) {
+continue;
+  }
   if (descriptor instanceof BridgedbMetrics) {
 BridgedbMetrics bridgedbMetrics = (BridgedbMetrics) descriptor;
 BridgedbMetricsPersistence persistence
@@ -114,6 +129,7 @@ public class BridgedbMetricsProcessor extends CollecTorMain 
{
 }
 logger.info("Cleaning up directory {} containing recent files.",
 this.recentPathName);
+this.writeProcessedFiles(this.parsedBridgedbMetricsFile, processedFiles);
 this.cleanUpRsyncDirectory();
 logger.info("Finished processing BridgeDB statistics file(s).");
   }
@@ -123,6 +139,8 @@ public class BridgedbMetricsProcessor extends CollecTorMain 
{
* storing them in instance attributes.
*/
   private void initializeConfiguration() throws ConfigurationException {
+this.parsedBridgedbMetricsFile = this.config.getPath(Key.StatsPath)
+.resolve("processed-bridgedb-metrics");
 this.outputPathName = config.getPath(Key.OutputPath).toString();
 this.recentPathName = config.getPath(Key.RecentPath).toString();

[tor-commits] [translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal

2020-01-15 Thread translation
commit 5882f97c617aca3ef72b58032c14d10b4c0ee4a7
Author: Translation commit bot 
Date:   Wed Jan 15 21:54:11 2020 +

https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
 contents+ru.po | 27 +++
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/contents+ru.po b/contents+ru.po
index 034940f35c..f2a6396707 100644
--- a/contents+ru.po
+++ b/contents+ru.po
@@ -4429,7 +4429,7 @@ msgstr ""
 #: https//support.torproject.org/operators/bandwidth-shaping/
 #: (content/operators/bandwidth-shaping/contents+en.lrquestion.description)
 msgid "There are two options you can add to your torrc file:"
-msgstr ""
+msgstr "В файле torrc можно указать следующие 
две опции:"
 
 #: https//support.torproject.org/operators/bandwidth-shaping/
 #: (content/operators/bandwidth-shaping/contents+en.lrquestion.description)
@@ -4449,7 +4449,7 @@ msgstr ""
 #: https//support.torproject.org/operators/bandwidth-shaping/
 #: (content/operators/bandwidth-shaping/contents+en.lrquestion.description)
 msgid "The minimum BandwidthRate setting is 75 kilobytes per second."
-msgstr ""
+msgstr "Минимальное значение BandwidthRate – 75 
килобайт/с."
 
 #: https//support.torproject.org/operators/bandwidth-shaping/
 #: (content/operators/bandwidth-shaping/contents+en.lrquestion.description)
@@ -4525,11 +4525,13 @@ msgstr ""
 #: (content/operators/bandwidth-shaping/contents+en.lrquestion.description)
 msgid "Note that BandwidthRate and BandwidthBurst are in **Bytes**, not Bits."
 msgstr ""
+"Обратите внимание, что BandwidthRate и BandwidthBurst 
указываются в "
+"**байтах**, а не битах."
 
 #: https//support.torproject.org/operators/behind-nat/
 #: (content/operators/behind-nat/contents+en.lrquestion.title)
 msgid "I'm behind a NAT/Firewall."
-msgstr ""
+msgstr "Я работаю за NAT / бранмауэром"
 
 #: https//support.torproject.org/operators/behind-nat/
 #: (content/operators/behind-nat/contents+en.lrquestion.description)
@@ -4697,7 +4699,7 @@ msgstr ""
 #: https//support.torproject.org/operators/exit-policies/
 #: (content/operators/exit-policies/contents+en.lrquestion.title)
 msgid "I'd run a relay, but I don't want to deal with abuse issues."
-msgstr ""
+msgstr "Я бы организовал у себя узел Tor, но не х
очу юридических проблем"
 
 #: https//support.torproject.org/operators/exit-policies/
 #: (content/operators/exit-policies/contents+en.lrquestion.description)
@@ -5157,7 +5159,7 @@ msgstr ""
 #: https//support.torproject.org/operators/offline-ed25519/
 #: (content/operators/offline-ed25519/contents+en.lrquestion.description)
 msgid "In simple words, it works like this:"
-msgstr ""
+msgstr "Проще говоря, это выглядит так:"
 
 #: https//support.torproject.org/operators/offline-ed25519/
 #: (content/operators/offline-ed25519/contents+en.lrquestion.description)
@@ -6376,6 +6378,8 @@ msgid ""
 "For reporting issues or feedback using email lists, we recommend that you do"
 " so on the one that is related to what you would like to report."
 msgstr ""
+"Хотите использовать для обратной связи и 
сообщений об ошибках списки email? "
+"Советуем выбрать список, который 
соответствует вашему вопросу."
 
 #: https//support.torproject.org/misc/bug-or-feedback/
 #: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6524,6 +6528,8 @@ msgid ""
 "You should not install any additional add-ons on Tor Browser because that "
 "can compromise some of its privacy features."
 msgstr ""
+"Не следует устанавливать другие 
дополнения. Это может ухудшить некоторые "
+"защитные качества Tor Browser."
 
 #: https//support.torproject.org/misc/glossary/
 #: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6716,6 +6722,8 @@ msgid ""
 "CAPTCHAs are a challenge-response test used in computing to determine "
 "whether the user is human or not."
 msgstr ""
+"Капча. Задачка-тест в сфере вычислений для 
определения, кем является "
+"пользователь: живым человеком или 
роботом."
 
 #: https//support.torproject.org/misc/glossary/
 #: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7117,7 +7125,7 @@ msgstr ""
 #: https//support.torproject.org/misc/glossary/
 #: (content/misc/glossary/contents+en.lrquestion.description)
 msgid "### GSoD"
-msgstr ""
+msgstr "### GSoD"
 
 #: https//support.torproject.org/misc/glossary/
 #: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7260,7 +7268,7 @@ msgstr "## I"
 #: https//support.torproject.org/misc/glossary/
 #: 

[tor-commits] [metrics-lib/release] Remove unused methods.

2020-01-15 Thread karsten
commit 067add639b8cd260b1530a50c81e0e1d0a63e9b0
Author: Karsten Loesing 
Date:   Thu Nov 21 09:55:12 2019 +0100

Remove unused methods.
---
 .../torproject/descriptor/impl/ParseHelper.java| 27 --
 1 file changed, 27 deletions(-)

diff --git a/src/main/java/org/torproject/descriptor/impl/ParseHelper.java 
b/src/main/java/org/torproject/descriptor/impl/ParseHelper.java
index 53f011c..cd73278 100644
--- a/src/main/java/org/torproject/descriptor/impl/ParseHelper.java
+++ b/src/main/java/org/torproject/descriptor/impl/ParseHelper.java
@@ -223,26 +223,6 @@ public class ParseHelper {
 ZoneOffset.UTC);
   }
 
-  protected static long parseDateAtIndex(String line, String[] parts,
-  int dateIndex) throws DescriptorParseException {
-if (dateIndex >= parts.length) {
-  throw new DescriptorParseException("Line '" + line + "' does not "
-  + "contain a date at the expected position.");
-}
-long result = -1L;
-try {
-  DateFormat dateFormat = getDateFormat("-MM-dd");
-  result = dateFormat.parse(parts[dateIndex]).getTime();
-} catch (ParseException e) {
-  /* Leave result at -1L. */
-}
-if (result < 0L || result / 1000L > (long) Integer.MAX_VALUE) {
-  throw new DescriptorParseException("Illegal date format in line '"
-  + line + "'.");
-}
-return result;
-  }
-
   protected static String parseTwentyByteHexString(String line,
   String hexString) throws DescriptorParseException {
 return parseHexString(line, hexString, 40);
@@ -330,18 +310,11 @@ public class ParseHelper {
 
   protected static void verifyThirtyTwoByteBase64String(String line,
   String base64String) throws DescriptorParseException {
-convertThirtyTwoByteBase64StringToHex(line, base64String);
-  }
-
-  private static String convertThirtyTwoByteBase64StringToHex(String line,
-  String base64String) throws DescriptorParseException {
 if (!thirtyTwoByteBase64Pattern.matcher(base64String).matches()) {
   throw new DescriptorParseException("'" + base64String
   + "' in line '" + line + "' is not a valid base64-encoded "
   + "32-byte value.");
 }
-return Hex.encodeHexString(Base64.decodeBase64(base64String + "="))
-.toUpperCase();
   }
 
   protected static String parseCommaSeparatedKeyIntegerValueList(



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Prepare for 2.10.0 release.

2020-01-15 Thread karsten
commit abcbd7c7a6b7a17d012cf1c8ac077fd73c9479e4
Author: Karsten Loesing 
Date:   Wed Jan 15 22:09:27 2020 +0100

Prepare for 2.10.0 release.
---
 CHANGELOG.md | 2 +-
 build.xml| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8d3ab12..5671a86 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 2.10.0 - 2019-1?-??
+# Changes in version 2.10.0 - 2020-01-15
 
  * Medium changes
- Parse three newly added lines in snowflake statistics files.
diff --git a/build.xml b/build.xml
index 9c3869a..bf615f7 100644
--- a/build.xml
+++ b/build.xml
@@ -7,7 +7,7 @@
 
 
-  
+  
   
   
   

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Parse three new lines in snowflake statistics.

2020-01-15 Thread karsten
commit 5fb36b70c884073963af8e9cb3a37fa907eb35b8
Author: Karsten Loesing 
Date:   Mon Dec 9 10:16:29 2019 +0100

Parse three new lines in snowflake statistics.

Implements #32665.
---
 CHANGELOG.md   |  5 ++-
 .../org/torproject/descriptor/SnowflakeStats.java  | 30 +
 .../java/org/torproject/descriptor/impl/Key.java   |  3 ++
 .../descriptor/impl/SnowflakeStatsImpl.java| 51 +-
 .../descriptor/impl/SnowflakeStatsImplTest.java| 12 +
 5 files changed, 98 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad91d5d..8d3ab12 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
-# Changes in version 2.?.? - 2019-1?-??
+# Changes in version 2.10.0 - 2019-1?-??
+
+ * Medium changes
+   - Parse three newly added lines in snowflake statistics files.
 
  * Minor changes
- Fix a NullPointerException when parsing an invalid crypto block
diff --git a/src/main/java/org/torproject/descriptor/SnowflakeStats.java 
b/src/main/java/org/torproject/descriptor/SnowflakeStats.java
index 379a0f7..5c464df 100644
--- a/src/main/java/org/torproject/descriptor/SnowflakeStats.java
+++ b/src/main/java/org/torproject/descriptor/SnowflakeStats.java
@@ -52,6 +52,36 @@ public interface SnowflakeStats extends Descriptor {
   Optional snowflakeIpsTotal();
 
   /**
+   * Return a count of the total number of unique IP addresses of snowflake
+   * proxies of type "standalone" that have polled.
+   *
+   * @return Count of the total number of unique IP addresses of snowflake
+   * proxies of type "standalone" that have polled.
+   * @since 2.10.0
+   */
+  Optional snowflakeIpsStandalone();
+
+  /**
+   * Return a count of the total number of unique IP addresses of snowflake
+   * proxies of type "badge" that have polled.
+   *
+   * @return Count of the total number of unique IP addresses of snowflake
+   * proxies of type "badge" that have polled.
+   * @since 2.10.0
+   */
+  Optional snowflakeIpsBadge();
+
+  /**
+   * Return a count of the total number of unique IP addresses of snowflake
+   * proxies of type "webext" that have polled.
+   *
+   * @return Count of the total number of unique IP addresses of snowflake
+   * proxies of type "webext" that have polled.
+   * @since 2.10.0
+   */
+  Optional snowflakeIpsWebext();
+
+  /**
* Return a count of the number of times a proxy has polled but received no
* client offer, rounded up to the nearest multiple of 8.
*
diff --git a/src/main/java/org/torproject/descriptor/impl/Key.java 
b/src/main/java/org/torproject/descriptor/impl/Key.java
index ac12992..10839dd 100644
--- a/src/main/java/org/torproject/descriptor/impl/Key.java
+++ b/src/main/java/org/torproject/descriptor/impl/Key.java
@@ -139,7 +139,10 @@ public enum Key {
   SIGNING_KEY("signing-key"),
   SNOWFLAKE_IDLE_COUNT("snowflake-idle-count"),
   SNOWFLAKE_IPS("snowflake-ips"),
+  SNOWFLAKE_IPS_BADGE("snowflake-ips-badge"),
+  SNOWFLAKE_IPS_STANDALONE("snowflake-ips-standalone"),
   SNOWFLAKE_IPS_TOTAL("snowflake-ips-total"),
+  SNOWFLAKE_IPS_WEBEXT("snowflake-ips-webext"),
   SNOWFLAKE_STATS_END("snowflake-stats-end"),
   TRANSPORT("transport"),
   TUNNELLED_DIR_SERVER("tunnelled-dir-server"),
diff --git 
a/src/main/java/org/torproject/descriptor/impl/SnowflakeStatsImpl.java 
b/src/main/java/org/torproject/descriptor/impl/SnowflakeStatsImpl.java
index 9922756..daaa933 100644
--- a/src/main/java/org/torproject/descriptor/impl/SnowflakeStatsImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/SnowflakeStatsImpl.java
@@ -20,8 +20,10 @@ public class SnowflakeStatsImpl extends DescriptorImpl
 implements SnowflakeStats {
 
   private static final Set atMostOnce = EnumSet.of(
-  Key.SNOWFLAKE_IPS, Key.SNOWFLAKE_IPS_TOTAL, Key.SNOWFLAKE_IDLE_COUNT,
-  Key.CLIENT_DENIED_COUNT, Key.CLIENT_SNOWFLAKE_MATCH_COUNT);
+  Key.SNOWFLAKE_IPS, Key.SNOWFLAKE_IPS_TOTAL, Key.SNOWFLAKE_IPS_STANDALONE,
+  Key.SNOWFLAKE_IPS_BADGE, Key.SNOWFLAKE_IPS_WEBEXT,
+  Key.SNOWFLAKE_IDLE_COUNT, Key.CLIENT_DENIED_COUNT,
+  Key.CLIENT_SNOWFLAKE_MATCH_COUNT);
 
   private static final Set exactlyOnce = EnumSet.of(
   Key.SNOWFLAKE_STATS_END);
@@ -61,6 +63,15 @@ public class SnowflakeStatsImpl extends DescriptorImpl
 case SNOWFLAKE_IPS_TOTAL:
   this.parseSnowflakeIpsTotal(line, parts);
   break;
+case SNOWFLAKE_IPS_STANDALONE:
+  this.parseSnowflakeIpsStandalone(line, parts);
+  break;
+case SNOWFLAKE_IPS_BADGE:
+  this.parseSnowflakeIpsBadge(line, parts);
+  break;
+case SNOWFLAKE_IPS_WEBEXT:
+  this.parseSnowflakeIpsWebext(line, parts);
+  break;
 case SNOWFLAKE_IDLE_COUNT:
   this.parseSnowflakeIdleCount(line, parts);
   break;
@@ -104,6 +115,21 @@ public class SnowflakeStatsImpl extends DescriptorImpl
 this.snowflakeIpsTotal = 

[tor-commits] [metrics-lib/release] Update copyright to 2020.

2020-01-15 Thread karsten
commit 0db8a5787ce3ff2cd31be957592c1ce0e38e12ce
Author: Karsten Loesing 
Date:   Wed Jan 15 21:29:57 2020 +0100

Update copyright to 2020.
---
 LICENSE | 2 +-
 src/main/java/org/torproject/descriptor/BandwidthFile.java  | 2 +-
 src/main/java/org/torproject/descriptor/BandwidthHistory.java   | 2 +-
 src/main/java/org/torproject/descriptor/BridgeExtraInfoDescriptor.java  | 2 +-
 src/main/java/org/torproject/descriptor/BridgeNetworkStatus.java| 2 +-
 src/main/java/org/torproject/descriptor/BridgePoolAssignment.java   | 2 +-
 src/main/java/org/torproject/descriptor/BridgeServerDescriptor.java | 2 +-
 src/main/java/org/torproject/descriptor/BridgedbMetrics.java| 2 +-
 src/main/java/org/torproject/descriptor/Descriptor.java | 2 +-
 src/main/java/org/torproject/descriptor/DescriptorCollector.java| 2 +-
 src/main/java/org/torproject/descriptor/DescriptorParseException.java   | 2 +-
 src/main/java/org/torproject/descriptor/DescriptorParser.java   | 2 +-
 src/main/java/org/torproject/descriptor/DescriptorReader.java   | 2 +-
 src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java| 2 +-
 src/main/java/org/torproject/descriptor/DirSourceEntry.java | 2 +-
 src/main/java/org/torproject/descriptor/DirectoryKeyCertificate.java| 2 +-
 src/main/java/org/torproject/descriptor/DirectorySignature.java | 2 +-
 src/main/java/org/torproject/descriptor/ExitList.java   | 2 +-
 src/main/java/org/torproject/descriptor/ExtraInfoDescriptor.java| 2 +-
 src/main/java/org/torproject/descriptor/LogDescriptor.java  | 2 +-
 src/main/java/org/torproject/descriptor/Method.java | 2 +-
 src/main/java/org/torproject/descriptor/Microdescriptor.java| 2 +-
 src/main/java/org/torproject/descriptor/NetworkStatusEntry.java | 2 +-
 src/main/java/org/torproject/descriptor/RelayDirectory.java | 2 +-
 src/main/java/org/torproject/descriptor/RelayExtraInfoDescriptor.java   | 2 +-
 src/main/java/org/torproject/descriptor/RelayNetworkStatus.java | 2 +-
 .../java/org/torproject/descriptor/RelayNetworkStatusConsensus.java | 2 +-
 src/main/java/org/torproject/descriptor/RelayNetworkStatusVote.java | 2 +-
 src/main/java/org/torproject/descriptor/RelayServerDescriptor.java  | 2 +-
 src/main/java/org/torproject/descriptor/RouterStatusEntry.java  | 2 +-
 src/main/java/org/torproject/descriptor/ServerDescriptor.java   | 2 +-
 src/main/java/org/torproject/descriptor/SnowflakeStats.java | 2 +-
 src/main/java/org/torproject/descriptor/TorperfResult.java  | 2 +-
 src/main/java/org/torproject/descriptor/UnparseableDescriptor.java  | 2 +-
 src/main/java/org/torproject/descriptor/WebServerAccessLog.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/BandwidthFileImpl.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/BandwidthHistoryImpl.java  | 2 +-
 src/main/java/org/torproject/descriptor/impl/BlockingIteratorImpl.java  | 2 +-
 .../org/torproject/descriptor/impl/BridgeExtraInfoDescriptorImpl.java   | 2 +-
 .../java/org/torproject/descriptor/impl/BridgeNetworkStatusImpl.java| 2 +-
 .../java/org/torproject/descriptor/impl/BridgePoolAssignmentImpl.java   | 2 +-
 .../java/org/torproject/descriptor/impl/BridgeServerDescriptorImpl.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/BridgedbMetricsImpl.java   | 2 +-
 src/main/java/org/torproject/descriptor/impl/DescriptorImpl.java| 2 +-
 src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java  | 2 +-
 src/main/java/org/torproject/descriptor/impl/DescriptorReaderImpl.java  | 2 +-
 src/main/java/org/torproject/descriptor/impl/DirSourceEntryImpl.java| 2 +-
 .../org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java | 2 +-
 .../java/org/torproject/descriptor/impl/DirectorySignatureImpl.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/ExitListEntryImpl.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/ExitListImpl.java  | 2 +-
 .../java/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java| 2 +-
 src/main/java/org/torproject/descriptor/impl/KeyValueMap.java   | 2 +-
 src/main/java/org/torproject/descriptor/impl/MicrodescriptorImpl.java   | 2 +-
 .../java/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/NetworkStatusImpl.java | 2 +-
 src/main/java/org/torproject/descriptor/impl/ParseHelper.java   | 2 +-
 src/main/java/org/torproject/descriptor/impl/RelayDirectoryImpl.java| 2 +-
 .../org/torproject/descriptor/impl/RelayExtraInfoDescriptorImpl.java| 2 +-
 .../org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java | 2 +-
 

[tor-commits] [metrics-lib/release] Properly mark deprecated method with annotation.

2020-01-15 Thread karsten
commit 9c7e1b9a54aa3f0df655864768254afd63acc0cb
Author: Karsten Loesing 
Date:   Wed Nov 20 17:40:08 2019 +0100

Properly mark deprecated method with annotation.
---
 src/main/java/org/torproject/descriptor/ServerDescriptor.java  | 1 +
 src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/main/java/org/torproject/descriptor/ServerDescriptor.java 
b/src/main/java/org/torproject/descriptor/ServerDescriptor.java
index 1867a01..9ecd46b 100644
--- a/src/main/java/org/torproject/descriptor/ServerDescriptor.java
+++ b/src/main/java/org/torproject/descriptor/ServerDescriptor.java
@@ -323,6 +323,7 @@ public interface ServerDescriptor extends Descriptor {
*
* @since 1.0.0
*/
+  @Deprecated
   List getHiddenServiceDirVersions();
 
   /**
diff --git 
a/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java 
b/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java
index 7102335..f33e2e8 100644
--- a/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java
@@ -848,6 +848,7 @@ public abstract class ServerDescriptorImpl extends 
DescriptorImpl
   }
 
   @Override
+  @Deprecated
   public List getHiddenServiceDirVersions() {
 return this.hiddenServiceDir ? null : Collections.singletonList(2);
   }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Remove unused suppression.

2020-01-15 Thread karsten
commit b3b12366411eaba769dfc95b4edd64c4e534487b
Author: Karsten Loesing 
Date:   Wed Nov 20 12:10:40 2019 +0100

Remove unused suppression.
---
 src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java | 1 -
 1 file changed, 1 deletion(-)

diff --git 
a/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java 
b/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java
index 3df90cc..995909c 100644
--- a/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/ServerDescriptorImpl.java
@@ -844,7 +844,6 @@ public abstract class ServerDescriptorImpl extends 
DescriptorImpl
   }
 
   @Override
-  @SuppressWarnings("deprecation")
   public List getHiddenServiceDirVersions() {
 return this.hiddenServiceDir ? null : Collections.singletonList(2);
   }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Remove final modifier from static methods.

2020-01-15 Thread karsten
commit 3554a91d813352bdefd5e5b10fc1c0891b4b753a
Author: Karsten Loesing 
Date:   Wed Nov 20 16:43:07 2019 +0100

Remove final modifier from static methods.
---
 .../java/org/torproject/descriptor/DescriptorSourceFactory.java   | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java 
b/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java
index 55fbcf3..80ea524 100644
--- a/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java
+++ b/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java
@@ -103,7 +103,7 @@ public final class DescriptorSourceFactory {
*
* @since 1.0.0
*/
-  public static final DescriptorParser createDescriptorParser() {
+  public static DescriptorParser createDescriptorParser() {
 return (DescriptorParser) retrieve(PARSER_PROPERTY);
   }
 
@@ -113,7 +113,7 @@ public final class DescriptorSourceFactory {
*
* @since 1.0.0
*/
-  public static final DescriptorReader createDescriptorReader() {
+  public static DescriptorReader createDescriptorReader() {
 return (DescriptorReader) retrieve(READER_PROPERTY);
   }
 
@@ -123,11 +123,11 @@ public final class DescriptorSourceFactory {
*
* @since 1.0.0
*/
-  public static final DescriptorCollector createDescriptorCollector() {
+  public static DescriptorCollector createDescriptorCollector() {
 return (DescriptorCollector) retrieve(COLLECTOR_PROPERTY);
   }
 
-  private static final  Object retrieve(String type) {
+  private static  Object retrieve(String type) {
 Object object;
 String clazzName = null;
 try {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Remove unused constructor.

2020-01-15 Thread karsten
commit a8e0cb7ab75f538db0a558075c4c75dc49ddc504
Author: Karsten Loesing 
Date:   Wed Nov 20 17:01:53 2019 +0100

Remove unused constructor.
---
 .../java/org/torproject/descriptor/impl/BlockingIteratorImpl.java | 4 
 1 file changed, 4 deletions(-)

diff --git 
a/src/main/java/org/torproject/descriptor/impl/BlockingIteratorImpl.java 
b/src/main/java/org/torproject/descriptor/impl/BlockingIteratorImpl.java
index 0c171ed..dbd518e 100644
--- a/src/main/java/org/torproject/descriptor/impl/BlockingIteratorImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/BlockingIteratorImpl.java
@@ -19,10 +19,6 @@ public class BlockingIteratorImpl implements Iterator, 
Iterable {
   /* Maximum number of elements in queue. */
   private int maxQueueSize = 100;
 
-  /* Restrict object construction to the impl package. */
-  protected BlockingIteratorImpl() {
-  }
-
   /* Create instance with maximum queue size. */
   protected BlockingIteratorImpl(Integer maxQueueSize) {
 if (null != maxQueueSize) {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Fix NPE when parsing invalid crypto blocks.

2020-01-15 Thread karsten
commit d6e9a0d75eb70500aa05097e3d09f4c77d37ddbb
Author: Karsten Loesing 
Date:   Wed Nov 20 17:19:44 2019 +0100

Fix NPE when parsing invalid crypto blocks.
---
 CHANGELOG.md   |  4 
 .../descriptor/impl/DirectoryKeyCertificateImpl.java   |  4 
 .../org/torproject/descriptor/impl/DirectorySignatureImpl.java |  4 
 .../torproject/descriptor/impl/ExtraInfoDescriptorImpl.java|  4 
 .../org/torproject/descriptor/impl/MicrodescriptorImpl.java|  4 
 .../org/torproject/descriptor/impl/RelayDirectoryImpl.java |  8 
 .../org/torproject/descriptor/impl/RelayNetworkStatusImpl.java |  8 
 .../torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java |  4 
 .../org/torproject/descriptor/impl/ServerDescriptorImpl.java   |  4 
 .../descriptor/impl/ExtraInfoDescriptorImplTest.java   | 10 ++
 .../torproject/descriptor/impl/ServerDescriptorImplTest.java   | 10 ++
 11 files changed, 64 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1cf59e0..568f115 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changes in version 2.?.? - 2019-1?-??
 
+ * Minor changes
+   - Fix a NullPointerException when parsing an invalid crypto block
+ starting with "-END " rather than "-BEGIN ".
+
 
 # Changes in version 2.9.1 - 2019-11-09
 
diff --git 
a/src/main/java/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java 
b/src/main/java/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
index a9268ce..8ae1ed7 100644
--- 
a/src/main/java/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
+++ 
b/src/main/java/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
@@ -80,6 +80,10 @@ public class DirectoryKeyCertificateImpl extends 
DescriptorImpl
   crypto.append(line).append(NL);
   break;
 case CRYPTO_END:
+  if (null == crypto) {
+throw new DescriptorParseException(Key.CRYPTO_END + " before "
++ Key.CRYPTO_BEGIN);
+  }
   crypto.append(line).append(NL);
   String cryptoString = crypto.toString();
   crypto = null;
diff --git 
a/src/main/java/org/torproject/descriptor/impl/DirectorySignatureImpl.java 
b/src/main/java/org/torproject/descriptor/impl/DirectorySignatureImpl.java
index 6430e7f..248d546 100644
--- a/src/main/java/org/torproject/descriptor/impl/DirectorySignatureImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/DirectorySignatureImpl.java
@@ -70,6 +70,10 @@ public class DirectorySignatureImpl implements 
DirectorySignature {
   crypto.append(line).append(NL);
   break;
 case CRYPTO_END:
+  if (null == crypto) {
+throw new DescriptorParseException(Key.CRYPTO_END + " before "
++ Key.CRYPTO_BEGIN);
+  }
   crypto.append(line).append(NL);
   String cryptoString = crypto.toString();
   crypto = null;
diff --git 
a/src/main/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java 
b/src/main/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
index 7053ced..17ac6e5 100644
--- a/src/main/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
@@ -242,6 +242,10 @@ public abstract class ExtraInfoDescriptorImpl extends 
DescriptorImpl
   cryptoLines.add(line);
   break;
 case CRYPTO_END:
+  if (null == cryptoLines) {
+throw new DescriptorParseException(Key.CRYPTO_END + " before "
++ Key.CRYPTO_BEGIN);
+  }
   cryptoLines.add(line);
   StringBuilder sb = new StringBuilder();
   for (String cryptoLine : cryptoLines) {
diff --git 
a/src/main/java/org/torproject/descriptor/impl/MicrodescriptorImpl.java 
b/src/main/java/org/torproject/descriptor/impl/MicrodescriptorImpl.java
index dc9795c..47028bd 100644
--- a/src/main/java/org/torproject/descriptor/impl/MicrodescriptorImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/MicrodescriptorImpl.java
@@ -71,6 +71,10 @@ public class MicrodescriptorImpl extends DescriptorImpl
   crypto.append(line).append(NL);
   break;
 case CRYPTO_END:
+  if (null == crypto) {
+throw new DescriptorParseException(Key.CRYPTO_END + " before "
++ Key.CRYPTO_BEGIN);
+  }
   crypto.append(line).append(NL);
   String cryptoString = crypto.toString();
   crypto = null;
diff --git 
a/src/main/java/org/torproject/descriptor/impl/RelayDirectoryImpl.java 
b/src/main/java/org/torproject/descriptor/impl/RelayDirectoryImpl.java
index 6370e87..55303d2 100644
--- a/src/main/java/org/torproject/descriptor/impl/RelayDirectoryImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/RelayDirectoryImpl.java
@@ -125,6 +125,10 @@ 

[tor-commits] [metrics-lib/release] Properly parse hostname in v2 network status.

2020-01-15 Thread karsten
commit ca37fd616c1e6464829e4ef64d6252944ccb69f5
Author: Karsten Loesing 
Date:   Wed Nov 20 17:53:54 2019 +0100

Properly parse hostname in v2 network status.
---
 CHANGELOG.md| 2 ++
 .../java/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java | 1 +
 .../java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java | 1 +
 3 files changed, 4 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 568f115..ad91d5d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,8 @@
  * Minor changes
- Fix a NullPointerException when parsing an invalid crypto block
  starting with "-END " rather than "-BEGIN ".
+   - Properly parse an authority's hostname from the "dir-source" line
+ in a v2 network status.
 
 
 # Changes in version 2.9.1 - 2019-11-09
diff --git 
a/src/main/java/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java 
b/src/main/java/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
index 1af9503..9860df0 100644
--- a/src/main/java/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
@@ -181,6 +181,7 @@ public class RelayNetworkStatusImpl extends 
NetworkStatusImpl
   throw new DescriptorParseException("Illegal hostname in '" + line
   + "'.");
 }
+this.hostname = parts[1];
 this.address = ParseHelper.parseIpv4Address(line, parts[2]);
 this.dirPort = ParseHelper.parsePort(line, parts[3]);
   }
diff --git 
a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java 
b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java
index 9ecf391..80d46da 100644
--- 
a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java
+++ 
b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusImplTest.java
@@ -60,6 +60,7 @@ public class RelayNetworkStatusImplTest {
 new int[] { 0, statusBytes.length }, null);
 assertEquals(rnsi.getContactLine(),
 "1024R/8D56913D Alex de Joode ");
+assertEquals("194.109.206.212", rnsi.getHostname());
   }
 }
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Simplify switch/case statement.

2020-01-15 Thread karsten
commit a18c70b33e89ac6a9c241860b15e46a1b54d0ea6
Author: Karsten Loesing 
Date:   Wed Nov 20 12:07:01 2019 +0100

Simplify switch/case statement.
---
 src/main/java/org/torproject/descriptor/impl/ExitListImpl.java | 4 
 1 file changed, 4 deletions(-)

diff --git a/src/main/java/org/torproject/descriptor/impl/ExitListImpl.java 
b/src/main/java/org/torproject/descriptor/impl/ExitListImpl.java
index bd5b2b6..b1ffa67 100644
--- a/src/main/java/org/torproject/descriptor/impl/ExitListImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/ExitListImpl.java
@@ -77,11 +77,7 @@ public class ExitListImpl extends DescriptorImpl implements 
ExitList {
   sb.append(line).append(ExitList.EOL);
   break;
 case "Published":
-  sb.append(line).append(ExitList.EOL);
-  break;
 case "LastStatus":
-  sb.append(line).append(ExitList.EOL);
-  break;
 case "ExitAddress":
   sb.append(line).append(ExitList.EOL);
   break;



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Simplify method call.

2020-01-15 Thread karsten
commit 5af3f60993a5ccf68545ca83a485e966a66343a9
Author: Karsten Loesing 
Date:   Wed Nov 20 12:07:49 2019 +0100

Simplify method call.
---
 src/main/java/org/torproject/descriptor/impl/KeyValueMap.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/torproject/descriptor/impl/KeyValueMap.java 
b/src/main/java/org/torproject/descriptor/impl/KeyValueMap.java
index 08ad84e..6cb4680 100644
--- a/src/main/java/org/torproject/descriptor/impl/KeyValueMap.java
+++ b/src/main/java/org/torproject/descriptor/impl/KeyValueMap.java
@@ -20,7 +20,7 @@ public class KeyValueMap extends TreeMap {
 
   private void putPair(String key, T value, String line, String listElement,
   int keyLength) throws DescriptorParseException {
-if (this.keySet().contains(key)) {
+if (this.containsKey(key)) {
   throw new DescriptorParseException("Line '" + line + "' contains "
   + "duplicate key '" + key + "'.");
 }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Bump version to 2.9.1-dev.

2020-01-15 Thread karsten
commit 87d998c542688c7e465486de24ef07c1cbece0b0
Author: Karsten Loesing 
Date:   Sat Nov 9 12:30:02 2019 +0100

Bump version to 2.9.1-dev.
---
 CHANGELOG.md | 3 +++
 build.xml| 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2fd361d..1cf59e0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# Changes in version 2.?.? - 2019-1?-??
+
+
 # Changes in version 2.9.1 - 2019-11-09
 
  * Minor changes
diff --git a/build.xml b/build.xml
index 0f8ac3c..9c3869a 100644
--- a/build.xml
+++ b/build.xml
@@ -7,7 +7,7 @@
 
 
-  
+  
   
   
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Fix possible NPE in tests.

2020-01-15 Thread karsten
commit f5f6e5971c9f5d42fa9698526d8716a0f13deebc
Author: Karsten Loesing 
Date:   Wed Nov 20 17:34:59 2019 +0100

Fix possible NPE in tests.
---
 .../java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java  | 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java 
b/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
index bd1d1d2..8e4424c 100644
--- a/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
@@ -453,6 +453,9 @@ public class ServerDescriptorImplTest {
 private ServerDescriptorImpl buildDescriptor()
 throws DescriptorParseException {
   byte[] descriptorBytes = this.buildDescriptorBytes();
+  if (null == descriptorBytes) {
+descriptorBytes = new byte[0];
+  }
   return new RelayServerDescriptorImpl(descriptorBytes,
   new int[] { 0, descriptorBytes.length }, null);
 }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Use StandardCharsets.US_ASCII instead of "US-ASCII".

2020-01-15 Thread karsten
commit 75e1d31465aceb31c81f86575dc71abdab77095a
Author: Karsten Loesing 
Date:   Wed Nov 20 12:04:29 2019 +0100

Use StandardCharsets.US_ASCII instead of "US-ASCII".
---
 .../java/org/torproject/descriptor/impl/ExitListImplTest.java| 9 +
 .../org/torproject/descriptor/impl/TorperfResultImplTest.java| 8 
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java 
b/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java
index 0b53250..44a868b 100644
--- a/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/ExitListImplTest.java
@@ -12,6 +12,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 
 public class ExitListImplTest {
@@ -22,7 +23,7 @@ public class ExitListImplTest {
   @Test
   public void testAnnotatedInput() throws Exception {
 ExitListImpl result = new ExitListImpl((tordnselAnnotation + input)
-.getBytes("US-ASCII"), null, fileName);
+.getBytes(StandardCharsets.US_ASCII), null, fileName);
 assertEquals("Expected one annotation.", 1,
 result.getAnnotations().size());
 assertEquals(tordnselAnnotation.substring(0, 18),
@@ -38,7 +39,7 @@ public class ExitListImplTest {
   public void testMultipleExitAddresses() throws Exception {
 ExitListImpl result = new ExitListImpl(
 (tordnselAnnotation + multiExitAddressInput)
-.getBytes("US-ASCII"), null, fileName);
+.getBytes(StandardCharsets.US_ASCII), null, fileName);
 assertTrue("Unrecognized lines: " + result.getUnrecognizedLines(),
 result.getUnrecognizedLines().isEmpty());
 Map map = result.getEntries()
@@ -54,7 +55,7 @@ public class ExitListImplTest {
 this.thrown.expect(DescriptorParseException.class);
 this.thrown.expectMessage("Missing 'ExitAddress' line in exit list 
entry.");
 new ExitListImpl((tordnselAnnotation + insufficientInput[0])
-.getBytes("US-ASCII"), null, fileName);
+.getBytes(StandardCharsets.US_ASCII), null, fileName);
   }
 
   @Test
@@ -62,7 +63,7 @@ public class ExitListImplTest {
 this.thrown.expect(DescriptorParseException.class);
 this.thrown.expectMessage("Missing 'Published' line in exit list entry.");
 new ExitListImpl((tordnselAnnotation + insufficientInput[1])
-.getBytes("US-ASCII"), null, fileName);
+.getBytes(StandardCharsets.US_ASCII), null, fileName);
   }
 
   private static final String tordnselAnnotation = "@type tordnsel 1.0\n";
diff --git 
a/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java 
b/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java
index 2af458f..b56490a 100644
--- a/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/TorperfResultImplTest.java
@@ -22,7 +22,7 @@ public class TorperfResultImplTest {
   public void testAnnotatedInput() throws Exception {
 TorperfResultImpl result = (TorperfResultImpl)
 (TorperfResultImpl.parseTorperfResults((torperfAnnotation + input)
-.getBytes("US-ASCII"), null).get(0));
+.getBytes(StandardCharsets.US_ASCII), null).get(0));
 assertEquals("Expected one annotation.", 1,
 result.getAnnotations().size());
 assertEquals(torperfAnnotation.substring(0, 17),
@@ -37,7 +37,7 @@ public class TorperfResultImplTest {
   @Test
   public void testPartiallyAnnotatedInput() throws Exception {
 byte[] asciiBytes = (torperfAnnotation
-+ input + input + input).getBytes("US-ASCII");
++ input + input + input).getBytes(StandardCharsets.US_ASCII);
 List result = TorperfResultImpl.parseTorperfResults(
 asciiBytes, null);
 assertEquals("Expected one annotation.", 1,
@@ -53,7 +53,7 @@ public class TorperfResultImplTest {
   public void testAllAnnotatedInput() throws Exception {
 byte[] asciiBytes = (torperfAnnotation + input
 + torperfAnnotation + input
-+ torperfAnnotation + input).getBytes("US-ASCII");
++ torperfAnnotation + input).getBytes(StandardCharsets.US_ASCII);
 List result = TorperfResultImpl.parseTorperfResults(
 asciiBytes, null);
 assertEquals("Expected one annotation.", 1,
@@ -68,7 +68,7 @@ public class TorperfResultImplTest {
   @Test
   public void testTrailingNewlinesRetained() throws Exception {
 byte[] asciiBytes = (torperfAnnotation + input
-+ torperfAnnotation + input).getBytes("US-ASCII");
++ torperfAnnotation + input).getBytes(StandardCharsets.US_ASCII);
 List result = TorperfResultImpl.parseTorperfResults(
 asciiBytes, null);
 for (Descriptor descriptor : result) {



___
tor-commits mailing list
tor-commits@lists.torproject.org

[tor-commits] [metrics-lib/release] Remove unnecessary cast.

2020-01-15 Thread karsten
commit a1209fa5ea992d2dc55b522b6ad2f3b06bb197be
Author: Karsten Loesing 
Date:   Wed Nov 20 16:39:33 2019 +0100

Remove unnecessary cast.
---
 .../java/org/torproject/descriptor/benchmark/MeasurePerformance.java| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java 
b/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java
index cf85e22..80d9792 100644
--- a/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java
+++ b/src/test/java/org/torproject/descriptor/benchmark/MeasurePerformance.java
@@ -98,7 +98,7 @@ public class MeasurePerformance {
 continue;
   }
   ServerDescriptor serverDescriptor = (ServerDescriptor) descriptor;
-  sumAdvertisedBandwidth += (long) Math.min(Math.min(
+  sumAdvertisedBandwidth += Math.min(Math.min(
   serverDescriptor.getBandwidthRate(),
   serverDescriptor.getBandwidthBurst()),
   serverDescriptor.getBandwidthObserved());



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Make inner class static.

2020-01-15 Thread karsten
commit 26874eb8a9af953b907fbe90cd6a604626312f6d
Author: Karsten Loesing 
Date:   Wed Nov 20 12:08:57 2019 +0100

Make inner class static.
---
 src/main/java/org/torproject/descriptor/impl/BandwidthFileImpl.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/src/main/java/org/torproject/descriptor/impl/BandwidthFileImpl.java 
b/src/main/java/org/torproject/descriptor/impl/BandwidthFileImpl.java
index 5d661e4..657b90e 100644
--- a/src/main/java/org/torproject/descriptor/impl/BandwidthFileImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/BandwidthFileImpl.java
@@ -165,7 +165,7 @@ public class BandwidthFileImpl extends DescriptorImpl 
implements BandwidthFile {
 }
   }
 
-  private class RelayLineImpl implements RelayLine {
+  private static class RelayLineImpl implements RelayLine {
 
 private String nodeId;
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/master] Bump version to 2.10.0-dev.

2020-01-15 Thread karsten
commit 4581035acf51769592d143c5c6d931ae0022
Author: Karsten Loesing 
Date:   Wed Jan 15 22:45:16 2020 +0100

Bump version to 2.10.0-dev.
---
 CHANGELOG.md | 3 +++
 build.xml| 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5671a86..bb8bb89 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# Changes in version 2.1?.? - 2020-0?-??
+
+
 # Changes in version 2.10.0 - 2020-01-15
 
  * Medium changes
diff --git a/build.xml b/build.xml
index bf615f7..fcf737b 100644
--- a/build.xml
+++ b/build.xml
@@ -7,7 +7,7 @@
 
 
-  
+  
   
   
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Remove deprecation warning.

2020-01-15 Thread karsten
commit 25ea064dc8214385f2077706b2635f2da0d530fa
Author: Karsten Loesing 
Date:   Wed Nov 20 10:34:35 2019 +0100

Remove deprecation warning.

Class#newInstance is deprecated in Java 9 and higher, which doesn't
affect us yet in Java 8. But the suggested replacement already works
in Java 8, so that we can safely switch to that.
---
 src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java 
b/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java
index e755e42..55fbcf3 100644
--- a/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java
+++ b/src/main/java/org/torproject/descriptor/DescriptorSourceFactory.java
@@ -146,10 +146,9 @@ public final class DescriptorSourceFactory {
   + ".");
   }
   object = ClassLoader.getSystemClassLoader().loadClass(clazzName)
-  .newInstance();
+  .getDeclaredConstructor().newInstance();
   log.info("Serving implementation {} for {}.", clazzName, type);
-} catch (ClassNotFoundException | InstantiationException
- | IllegalAccessException ex) {
+} catch (ReflectiveOperationException ex) {
   throw new RuntimeException("Cannot load class "
   + clazzName + "for type " + type, ex);
 }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/release] Fix logging.

2020-01-15 Thread karsten
commit 2614e6137ce7ddac40eb369175f3f24aad45d4ab
Author: Karsten Loesing 
Date:   Wed Nov 20 12:03:05 2019 +0100

Fix logging.
---
 .../java/org/torproject/descriptor/index/DescriptorIndexCollector.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/src/main/java/org/torproject/descriptor/index/DescriptorIndexCollector.java 
b/src/main/java/org/torproject/descriptor/index/DescriptorIndexCollector.java
index 9e053dc..c472da0 100644
--- 
a/src/main/java/org/torproject/descriptor/index/DescriptorIndexCollector.java
+++ 
b/src/main/java/org/torproject/descriptor/index/DescriptorIndexCollector.java
@@ -181,7 +181,7 @@ public class DescriptorIndexCollector implements 
DescriptorCollector {
 } catch (IOException ioe) {
   log.warn("Cannot index local directory {} to skip any remote files that "
   + "already exist locally.  Continuing with an either empty or "
-  + "incomplete index of local files.", ioe);
+  + "incomplete index of local files.", localDir, ioe);
 }
 return locals;
   }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/master] Prepare for 2.10.0 release.

2020-01-15 Thread karsten
commit abcbd7c7a6b7a17d012cf1c8ac077fd73c9479e4
Author: Karsten Loesing 
Date:   Wed Jan 15 22:09:27 2020 +0100

Prepare for 2.10.0 release.
---
 CHANGELOG.md | 2 +-
 build.xml| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8d3ab12..5671a86 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 2.10.0 - 2019-1?-??
+# Changes in version 2.10.0 - 2020-01-15
 
  * Medium changes
- Parse three newly added lines in snowflake statistics files.
diff --git a/build.xml b/build.xml
index 9c3869a..bf615f7 100644
--- a/build.xml
+++ b/build.xml
@@ -7,7 +7,7 @@
 
 
-  
+  
   
   
   



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-lib/master] Update to latest metrics-base.

2020-01-15 Thread karsten
commit 6408bd9a85890f06a74f5f077e49dffe33acc36e
Author: Karsten Loesing 
Date:   Wed Jan 15 22:45:39 2020 +0100

Update to latest metrics-base.
---
 src/build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/build b/src/build
index eb16cb3..264e498 16
--- a/src/build
+++ b/src/build
@@ -1 +1 @@
-Subproject commit eb16cb359db41722e6089bafb1e26808df4338df
+Subproject commit 264e498f54a20f7d299daaf2533d043f880e6a8b

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [metrics-web/master] Update copyright to 2020.

2020-01-15 Thread karsten
commit a59139b8460c6c77f36370fe35164b70a84f5d68
Author: Karsten Loesing 
Date:   Wed Jan 15 21:56:00 2020 +0100

Update copyright to 2020.
---
 LICENSE | 2 +-
 src/main/java/org/torproject/metrics/stats/advbwdist/Main.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/bridgedb/Main.java   | 2 +-
 src/main/java/org/torproject/metrics/stats/bwhist/Main.java | 2 +-
 .../metrics/stats/bwhist/RelayDescriptorDatabaseImporter.java   | 2 +-
 src/main/java/org/torproject/metrics/stats/bwhist/Writer.java   | 2 +-
 src/main/java/org/torproject/metrics/stats/clients/Database.java| 2 +-
 src/main/java/org/torproject/metrics/stats/clients/Detector.java| 2 +-
 src/main/java/org/torproject/metrics/stats/clients/Main.java| 2 +-
 src/main/java/org/torproject/metrics/stats/clients/Writer.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/collectdescs/Main.java   | 2 +-
 src/main/java/org/torproject/metrics/stats/connbidirect/Main.java   | 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java  | 2 +-
 .../org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/DateTimeHelper.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/Document.java| 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java   | 2 +-
 .../org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java| 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/Main.java| 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/Parser.java  | 2 +-
 .../java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java | 2 +-
 src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java| 2 +-
 src/main/java/org/torproject/metrics/stats/servers/Database.java| 2 +-
 .../java/org/torproject/metrics/stats/servers/Ipv6NetworkStatus.java| 2 +-
 .../java/org/torproject/metrics/stats/servers/Ipv6ServerDescriptor.java | 2 +-
 src/main/java/org/torproject/metrics/stats/servers/Main.java| 2 +-
 src/main/java/org/torproject/metrics/stats/servers/Parser.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/servers/Writer.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/totalcw/Database.java| 2 +-
 src/main/java/org/torproject/metrics/stats/totalcw/Main.java| 2 +-
 src/main/java/org/torproject/metrics/stats/totalcw/OutputLine.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/totalcw/Parser.java  | 2 +-
 .../org/torproject/metrics/stats/totalcw/TotalcwRelayNetworkStatus.java | 2 +-
 src/main/java/org/torproject/metrics/stats/totalcw/Writer.java  | 2 +-
 src/main/java/org/torproject/metrics/stats/webstats/Main.java   | 2 +-
 src/main/java/org/torproject/metrics/web/AboutServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/web/BubblesServlet.java| 2 +-
 src/main/java/org/torproject/metrics/web/Category.java  | 2 +-
 src/main/java/org/torproject/metrics/web/CollecTorServlet.java  | 2 +-
 .../java/org/torproject/metrics/web/CollectorDirectoryProvider.java | 2 +-
 src/main/java/org/torproject/metrics/web/ContentProvider.java   | 2 +-
 src/main/java/org/torproject/metrics/web/Countries.java | 2 +-
 src/main/java/org/torproject/metrics/web/DataSourceServlet.java | 2 +-
 src/main/java/org/torproject/metrics/web/DevelopmentServlet.java| 2 +-
 src/main/java/org/torproject/metrics/web/DirectoryListing.java  | 2 +-
 src/main/java/org/torproject/metrics/web/ErrorServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/web/ExoneraTorWrapperServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/web/GlossaryServlet.java   | 2 +-
 src/main/java/org/torproject/metrics/web/GraphImageServlet.java | 2 +-
 src/main/java/org/torproject/metrics/web/GraphParameterChecker.java | 2 +-
 src/main/java/org/torproject/metrics/web/GraphServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/web/IndexServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/web/LinkServlet.java   | 2 +-
 src/main/java/org/torproject/metrics/web/Metric.java| 2 +-
 src/main/java/org/torproject/metrics/web/MetricServlet.java | 2 +-
 src/main/java/org/torproject/metrics/web/MetricsGuidelinesServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/web/MetricsLibServlet.java | 2 +-
 src/main/java/org/torproject/metrics/web/News.java  | 2 +-
 src/main/java/org/torproject/metrics/web/NewsServlet.java   | 2 +-
 

[tor-commits] [exonerator/master] Update copyright to 2020.

2020-01-15 Thread karsten
commit 20501a55241d90a015ea7efcef3f18371c6c80c8
Author: Karsten Loesing 
Date:   Wed Jan 15 21:45:54 2020 +0100

Update copyright to 2020.
---
 LICENSE | 2 +-
 .../org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java   | 2 +-
 src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java | 2 +-
 .../org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java| 2 +-
 src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java  | 2 +-
 src/main/java/org/torproject/metrics/exonerator/QueryResponse.java  | 2 +-
 src/main/java/org/torproject/metrics/exonerator/QueryServlet.java   | 2 +-
 src/main/java/org/torproject/metrics/exonerator/ServerMain.java | 2 +-
 src/main/resources/bootstrap-development.sh | 2 +-
 src/main/sql/exonerator.sql | 2 +-
 src/main/sql/exonerator2.sql| 2 +-
 src/test/java/org/torproject/metrics/exonerator/ExoneraTorDateTest.java | 2 +-
 .../java/org/torproject/metrics/exonerator/ExoneraTorServletTest.java   | 2 +-
 src/test/java/org/torproject/metrics/exonerator/QueryResponseTest.java  | 2 +-
 14 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/LICENSE b/LICENSE
index 49d61f8..d7b0663 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2010--2017 The Tor Project
+Copyright 2010--2020 The Tor Project
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
index 47261fc..c9cc6b9 100644
--- 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
+++ 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDatabaseImporter.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2018 The Tor Project
+/* Copyright 2011--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java
index 92d6b31..8e084d6 100644
--- a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java
+++ b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorDate.java
@@ -1,4 +1,4 @@
-/* Copyright 2017--2018 The Tor Project
+/* Copyright 2017--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
index fbe4e49..ebcbaca 100644
--- 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
+++ 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorRedirectServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Tor Project
+/* Copyright 2018--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git 
a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java 
b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
index 92cc8bb..3ba42da 100644
--- a/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
+++ b/src/main/java/org/torproject/metrics/exonerator/ExoneraTorServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2011--2018 The Tor Project
+/* Copyright 2011--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git a/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java 
b/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java
index 6a8976a..aee8dbf 100644
--- a/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java
+++ b/src/main/java/org/torproject/metrics/exonerator/QueryResponse.java
@@ -1,4 +1,4 @@
-/* Copyright 2017--2018 The Tor Project
+/* Copyright 2017--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git a/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java 
b/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java
index 760e385..85dec57 100644
--- a/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java
+++ b/src/main/java/org/torproject/metrics/exonerator/QueryServlet.java
@@ -1,4 +1,4 @@
-/* Copyright 2017--2018 The Tor Project
+/* Copyright 2017--2020 The Tor Project
  * See LICENSE for licensing information */
 
 package org.torproject.metrics.exonerator;
diff --git a/src/main/java/org/torproject/metrics/exonerator/ServerMain.java 
b/src/main/java/org/torproject/metrics/exonerator/ServerMain.java

  1   2   3   >