[tor-commits] [tor/master] Introduce generic HS stats methods that apply to v2 and v3.

dgoulet at torproject.org dgoulet at torproject.org
Tue Nov 17 15:49:48 UTC 2020


commit f2eff171264595de9a534c01628909d0ba6cb9fb
Author: George Kadianakis <desnacked at riseup.net>
Date:   Tue Nov 3 11:04:13 2020 +0200

    Introduce generic HS stats methods that apply to v2 and v3.
---
 src/feature/stats/rephist.c | 62 +++++++++++++++++++++++----------------------
 1 file changed, 32 insertions(+), 30 deletions(-)

diff --git a/src/feature/stats/rephist.c b/src/feature/stats/rephist.c
index 2ad86ff6d9..7f5ec93597 100644
--- a/src/feature/stats/rephist.c
+++ b/src/feature/stats/rephist.c
@@ -1742,17 +1742,6 @@ hs_v2_stats_free_(hs_v2_stats_t *victim_hs_v2_stats)
   tor_free(victim_hs_v2_stats);
 }
 
-/** Initialize hidden service statistics. */
-void
-rep_hist_hs_v2_stats_init(time_t now)
-{
-  if (!hs_v2_stats) {
-    hs_v2_stats = hs_v2_stats_new();
-  }
-
-  start_of_hs_v2_stats_interval = now;
-}
-
 /** Clear history of hidden service statistics and set the measurement
  * interval start to <b>now</b>. */
 static void
@@ -1770,25 +1759,6 @@ rep_hist_reset_hs_v2_stats(time_t now)
   start_of_hs_v2_stats_interval = now;
 }
 
-/** Stop collecting hidden service stats in a way that we can re-start
- * doing so in rep_hist_buffer_stats_init(). */
-void
-rep_hist_hs_v2_stats_term(void)
-{
-  rep_hist_reset_hs_v2_stats(0);
-}
-
-/** We saw a new HS relay cell, Count it! */
-void
-rep_hist_seen_new_rp_cell(void)
-{
-  if (!hs_v2_stats) {
-    return; // We're not collecting stats
-  }
-
-  hs_v2_stats->rp_relay_cells_seen++;
-}
-
 /** As HSDirs, we saw another v2 onion with public key <b>pubkey</b>. Check
  *  whether we have counted it before, if not count it now! */
 void
@@ -1946,6 +1916,38 @@ rep_hist_seen_new_rp_cell(bool is_v2)
   }
 }
 
+/** Generic HS stats code */
+
+/** Initialize v2 and v3 hidden service statistics. */
+void
+rep_hist_hs_stats_init(time_t now)
+{
+  if (!hs_v2_stats) {
+    hs_v2_stats = hs_v2_stats_new();
+  }
+
+  /* Start collecting v2 stats straight away */
+  start_of_hs_v2_stats_interval = now;
+
+  if (!hs_v3_stats) {
+    hs_v3_stats = hs_v3_stats_new();
+  }
+
+  /* Start collecting v3 stats at the next 12:00 UTC */
+  start_of_hs_v3_stats_interval = hs_get_start_time_of_next_time_period(now);
+}
+
+/** Stop collecting hidden service stats in a way that we can re-start
+ * doing so in rep_hist_buffer_stats_init(). */
+void
+rep_hist_hs_stats_term(void)
+{
+  rep_hist_reset_hs_v2_stats(0);
+  rep_hist_reset_hs_v3_stats(0);
+}
+
+/** Stats reporting code */
+
 /* The number of cells that are supposed to be hidden from the adversary
  * by adding noise from the Laplace distribution.  This value, divided by
  * EPSILON, is Laplace parameter b. It must be greather than 0. */





More information about the tor-commits mailing list