mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
hs: Remove v2 stats
We still keep v2 rendezvous stats since we will allow them until the network has entirely phased out. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
9f2e74cac7
commit
897ec8a34c
@ -105,10 +105,9 @@ log_onion_service_stats(void)
|
||||
}
|
||||
|
||||
log_notice(LD_HEARTBEAT,
|
||||
"Our onion service%s received %u v2 and %u v3 INTRODUCE2 cells "
|
||||
"Our onion service%s received %u v3 INTRODUCE2 cells "
|
||||
"and attempted to launch %d rendezvous circuits.",
|
||||
num_services == 1 ? "" : "s",
|
||||
hs_stats_get_n_introduce2_v2_cells(),
|
||||
hs_stats_get_n_introduce2_v3_cells(),
|
||||
hs_stats_get_n_rendezvous_launches());
|
||||
}
|
||||
|
@ -4075,7 +4075,7 @@ hs_service_receive_introduce2(origin_circuit_t *circ, const uint8_t *payload,
|
||||
|
||||
if (circ->hs_ident) {
|
||||
ret = service_handle_introduce2(circ, payload, payload_len);
|
||||
hs_stats_note_introduce2_cell(1);
|
||||
hs_stats_note_introduce2_cell();
|
||||
}
|
||||
|
||||
done:
|
||||
|
@ -12,20 +12,14 @@
|
||||
|
||||
/** Number of v3 INTRODUCE2 cells received */
|
||||
static uint32_t n_introduce2_v3 = 0;
|
||||
/** Number of v2 INTRODUCE2 cells received */
|
||||
static uint32_t n_introduce2_v2 = 0;
|
||||
/** Number of attempts to make a circuit to a rendezvous point */
|
||||
static uint32_t n_rendezvous_launches = 0;
|
||||
|
||||
/** Note that we received another INTRODUCE2 cell. */
|
||||
void
|
||||
hs_stats_note_introduce2_cell(int is_hsv3)
|
||||
hs_stats_note_introduce2_cell(void)
|
||||
{
|
||||
if (is_hsv3) {
|
||||
n_introduce2_v3++;
|
||||
} else {
|
||||
n_introduce2_v2++;
|
||||
}
|
||||
n_introduce2_v3++;
|
||||
}
|
||||
|
||||
/** Return the number of v3 INTRODUCE2 cells we have received. */
|
||||
@ -35,13 +29,6 @@ hs_stats_get_n_introduce2_v3_cells(void)
|
||||
return n_introduce2_v3;
|
||||
}
|
||||
|
||||
/** Return the number of v2 INTRODUCE2 cells we have received. */
|
||||
uint32_t
|
||||
hs_stats_get_n_introduce2_v2_cells(void)
|
||||
{
|
||||
return n_introduce2_v2;
|
||||
}
|
||||
|
||||
/** Note that we attempted to launch another circuit to a rendezvous point. */
|
||||
void
|
||||
hs_stats_note_service_rendezvous_launch(void)
|
||||
|
@ -9,9 +9,8 @@
|
||||
#ifndef TOR_HS_STATS_H
|
||||
#define TOR_HS_STATS_H
|
||||
|
||||
void hs_stats_note_introduce2_cell(int is_hsv3);
|
||||
void hs_stats_note_introduce2_cell(void);
|
||||
uint32_t hs_stats_get_n_introduce2_v3_cells(void);
|
||||
uint32_t hs_stats_get_n_introduce2_v2_cells(void);
|
||||
void hs_stats_note_service_rendezvous_launch(void);
|
||||
uint32_t hs_stats_get_n_rendezvous_launches(void);
|
||||
|
||||
|
@ -1722,7 +1722,6 @@ static hs_v2_stats_t *
|
||||
hs_v2_stats_new(void)
|
||||
{
|
||||
hs_v2_stats_t *new_hs_v2_stats = tor_malloc_zero(sizeof(hs_v2_stats_t));
|
||||
new_hs_v2_stats->v2_onions_seen_this_period = digestmap_new();
|
||||
|
||||
return new_hs_v2_stats;
|
||||
}
|
||||
@ -1737,8 +1736,6 @@ hs_v2_stats_free_(hs_v2_stats_t *victim_hs_v2_stats)
|
||||
if (!victim_hs_v2_stats) {
|
||||
return;
|
||||
}
|
||||
|
||||
digestmap_free(victim_hs_v2_stats->v2_onions_seen_this_period, NULL);
|
||||
tor_free(victim_hs_v2_stats);
|
||||
}
|
||||
|
||||
@ -1753,40 +1750,9 @@ rep_hist_reset_hs_v2_stats(time_t now)
|
||||
|
||||
hs_v2_stats->rp_v2_relay_cells_seen = 0;
|
||||
|
||||
digestmap_free(hs_v2_stats->v2_onions_seen_this_period, NULL);
|
||||
hs_v2_stats->v2_onions_seen_this_period = digestmap_new();
|
||||
|
||||
start_of_hs_v2_stats_interval = now;
|
||||
}
|
||||
|
||||
/** 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
|
||||
rep_hist_hsdir_stored_maybe_new_v2_onion(const crypto_pk_t *pubkey)
|
||||
{
|
||||
char pubkey_hash[DIGEST_LEN];
|
||||
|
||||
if (!hs_v2_stats) {
|
||||
return; // We're not collecting stats
|
||||
}
|
||||
|
||||
/* Get the digest of the pubkey which will be used to detect whether
|
||||
we've seen this hidden service before or not. */
|
||||
if (crypto_pk_get_digest(pubkey, pubkey_hash) < 0) {
|
||||
/* This fail should not happen; key has been validated by
|
||||
descriptor parsing code first. */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check if this is the first time we've seen this hidden
|
||||
service. If it is, count it as new. */
|
||||
if (!digestmap_get(hs_v2_stats->v2_onions_seen_this_period,
|
||||
pubkey_hash)) {
|
||||
digestmap_set(hs_v2_stats->v2_onions_seen_this_period,
|
||||
pubkey_hash, (void*)(uintptr_t)1);
|
||||
}
|
||||
}
|
||||
|
||||
/*** HSv3 stats ******/
|
||||
|
||||
/** Start of the current hidden service stats interval or 0 if we're not
|
||||
@ -1989,8 +1955,7 @@ rep_hist_format_hs_stats(time_t now, bool is_v3)
|
||||
uint64_t rp_cells_seen = is_v3 ?
|
||||
hs_v3_stats->rp_v3_relay_cells_seen : hs_v2_stats->rp_v2_relay_cells_seen;
|
||||
size_t onions_seen = is_v3 ?
|
||||
digest256map_size(hs_v3_stats->v3_onions_seen_this_period) :
|
||||
digestmap_size(hs_v2_stats->v2_onions_seen_this_period);
|
||||
digest256map_size(hs_v3_stats->v3_onions_seen_this_period) : 0;
|
||||
time_t start_of_hs_stats_interval = is_v3 ?
|
||||
start_of_hs_v3_stats_interval : start_of_hs_v2_stats_interval;
|
||||
|
||||
|
@ -67,9 +67,7 @@ void rep_hist_hs_stats_init(time_t now);
|
||||
void rep_hist_hs_stats_term(void);
|
||||
time_t rep_hist_hs_stats_write(time_t now, bool is_v3);
|
||||
|
||||
char *rep_hist_get_hs_v2_stats_string(void);
|
||||
void rep_hist_seen_new_rp_cell(bool is_v2);
|
||||
void rep_hist_hsdir_stored_maybe_new_v2_onion(const crypto_pk_t *pubkey);
|
||||
|
||||
char *rep_hist_get_hs_v3_stats_string(void);
|
||||
void rep_hist_hsdir_stored_maybe_new_v3_onion(const uint8_t *blinded_key);
|
||||
@ -93,10 +91,6 @@ extern int onion_handshakes_assigned[MAX_ONION_HANDSHAKE_TYPE+1];
|
||||
typedef struct hs_v2_stats_t {
|
||||
/** How many v2 relay cells have we seen as rendezvous points? */
|
||||
uint64_t rp_v2_relay_cells_seen;
|
||||
|
||||
/** Set of unique public key digests we've seen this stat period
|
||||
* (could also be implemented as sorted smartlist). */
|
||||
digestmap_t *v2_onions_seen_this_period;
|
||||
} hs_v2_stats_t;
|
||||
|
||||
/** Structure that contains the various statistics we keep about v3
|
||||
|
Loading…
Reference in New Issue
Block a user