diff options
author | friendly73 <friendly73@x.x> | 2023-03-21 14:25:57 +0000 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2023-05-25 11:03:35 -0400 |
commit | 1899b6230d62a185f3f126e34f4896237190cf36 (patch) | |
tree | 6095f35b895bdda8fb3df9d38720585e2453aebf /src/feature/hs | |
parent | 2f8a88448d9a75737a60a204127eb697891ec112 (diff) | |
download | tor-1899b6230d62a185f3f126e34f4896237190cf36.tar.gz tor-1899b6230d62a185f3f126e34f4896237190cf36.zip |
Removed getter abstraction and moved from rephist to relay_metrics.
Diffstat (limited to 'src/feature/hs')
-rw-r--r-- | src/feature/hs/hs_intropoint.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/feature/hs/hs_intropoint.c b/src/feature/hs/hs_intropoint.c index c60f91b884..3dcad309e7 100644 --- a/src/feature/hs/hs_intropoint.c +++ b/src/feature/hs/hs_intropoint.c @@ -15,6 +15,7 @@ #include "core/or/circuituse.h" #include "core/or/relay.h" #include "feature/rend/rendmid.h" +#include "feature/relay/relay_metrics.h" #include "feature/stats/rephist.h" #include "lib/crypt_ops/crypto_format.h" #include "lib/time/compat_time.h" @@ -419,7 +420,7 @@ handle_establish_intro(or_circuit_t *circ, const uint8_t *request, /* Check that the circuit is in shape to become an intro point */ if (!hs_intro_circuit_is_suitable_for_establish_intro(circ)) { - rep_hist_note_est_intro_action(EST_INTRO_UNSUITABLE_CIRCUIT); + increment_est_intro_action(EST_INTRO_UNSUITABLE_CIRCUIT); goto err; } @@ -427,7 +428,7 @@ handle_establish_intro(or_circuit_t *circ, const uint8_t *request, ssize_t parsing_result = trn_cell_establish_intro_parse(&parsed_cell, request, request_len); if (parsing_result < 0) { - rep_hist_note_est_intro_action(EST_INTRO_MALFORMED); + increment_est_intro_action(EST_INTRO_MALFORMED); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Rejecting %s ESTABLISH_INTRO cell.", parsing_result == -1 ? "invalid" : "truncated"); @@ -438,7 +439,7 @@ handle_establish_intro(or_circuit_t *circ, const uint8_t *request, (uint8_t *) circ->rend_circ_nonce, sizeof(circ->rend_circ_nonce)); if (cell_ok < 0) { - rep_hist_note_est_intro_action(EST_INTRO_MALFORMED); + increment_est_intro_action(EST_INTRO_MALFORMED); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Failed to verify ESTABLISH_INTRO cell."); goto err; @@ -447,11 +448,11 @@ handle_establish_intro(or_circuit_t *circ, const uint8_t *request, /* This cell is legit. Take the appropriate actions. */ cell_ok = handle_verified_establish_intro_cell(circ, parsed_cell); if (cell_ok < 0) { - rep_hist_note_est_intro_action(EST_INTRO_CIRCUIT_DEAD); + increment_est_intro_action(EST_INTRO_CIRCUIT_DEAD); goto err; } - rep_hist_note_est_intro_action(EST_INTRO_SUCCESS); + increment_est_intro_action(EST_INTRO_SUCCESS); /* We are done! */ retval = 0; goto done; @@ -510,7 +511,7 @@ hs_intro_received_establish_intro(or_circuit_t *circ, const uint8_t *request, tor_assert(request); if (request_len == 0) { - rep_hist_note_est_intro_action(EST_INTRO_MALFORMED); + increment_est_intro_action(EST_INTRO_MALFORMED); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Empty ESTABLISH_INTRO cell."); goto err; } @@ -523,12 +524,12 @@ hs_intro_received_establish_intro(or_circuit_t *circ, const uint8_t *request, case TRUNNEL_HS_INTRO_AUTH_KEY_TYPE_LEGACY1: /* Likely version 2 onion service which is now obsolete. Avoid a * protocol warning considering they still exists on the network. */ - rep_hist_note_est_intro_action(EST_INTRO_MALFORMED); + increment_est_intro_action(EST_INTRO_MALFORMED); goto err; case TRUNNEL_HS_INTRO_AUTH_KEY_TYPE_ED25519: return handle_establish_intro(circ, request, request_len); default: - rep_hist_note_est_intro_action(EST_INTRO_MALFORMED); + increment_est_intro_action(EST_INTRO_MALFORMED); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Unrecognized AUTH_KEY_TYPE %u.", first_byte); goto err; @@ -652,7 +653,7 @@ handle_introduce1(or_circuit_t *client_circ, const uint8_t *request, ssize_t cell_size = trn_cell_introduce1_parse(&parsed_cell, request, request_len); if (cell_size < 0) { - rep_hist_note_intro1_action(INTRO1_MALFORMED); + increment_intro1_action(INTRO1_MALFORMED); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Rejecting %s INTRODUCE1 cell. Responding with NACK.", cell_size == -1 ? "invalid" : "truncated"); @@ -663,7 +664,7 @@ handle_introduce1(or_circuit_t *client_circ, const uint8_t *request, /* Once parsed validate the cell format. */ if (validate_introduce1_parsed_cell(parsed_cell) < 0) { - rep_hist_note_intro1_action(INTRO1_MALFORMED); + increment_intro1_action(INTRO1_MALFORMED); /* Inform client that the INTRODUCE1 has bad format. */ status = TRUNNEL_HS_INTRO_ACK_STATUS_BAD_FORMAT; goto send_ack; @@ -675,7 +676,7 @@ handle_introduce1(or_circuit_t *client_circ, const uint8_t *request, get_auth_key_from_cell(&auth_key, RELAY_COMMAND_INTRODUCE1, parsed_cell); service_circ = hs_circuitmap_get_intro_circ_v3_relay_side(&auth_key); if (service_circ == NULL) { - rep_hist_note_intro1_action(INTRO1_UNKNOWN_SERVICE); + increment_intro1_action(INTRO1_UNKNOWN_SERVICE); char b64_key[ED25519_BASE64_LEN + 1]; ed25519_public_to_base64(b64_key, &auth_key); log_info(LD_REND, "No intro circuit found for INTRODUCE1 cell " @@ -691,7 +692,7 @@ handle_introduce1(or_circuit_t *client_circ, const uint8_t *request, /* Before sending, lets make sure this cell can be sent on the service * circuit asking the DoS defenses. */ if (!hs_dos_can_send_intro2(service_circ)) { - rep_hist_note_intro1_action(INTRO1_RATE_LIMITED); + increment_intro1_action(INTRO1_RATE_LIMITED); char *msg; static ratelim_t rlimit = RATELIM_INIT(5 * 60); if ((msg = rate_limit_log(&rlimit, approx_time()))) { @@ -708,7 +709,7 @@ handle_introduce1(or_circuit_t *client_circ, const uint8_t *request, if (relay_send_command_from_edge(CONTROL_CELL_ID, TO_CIRCUIT(service_circ), RELAY_COMMAND_INTRODUCE2, (char *) request, request_len, NULL)) { - rep_hist_note_intro1_action(INTRO1_CIRCUIT_DEAD); + increment_intro1_action(INTRO1_CIRCUIT_DEAD); log_warn(LD_PROTOCOL, "Unable to send INTRODUCE2 cell to the service."); /* Inform the client that we can't relay the cell. Use the unknown ID * status code since it means that we do not know the service. */ @@ -716,7 +717,7 @@ handle_introduce1(or_circuit_t *client_circ, const uint8_t *request, goto send_ack; } - rep_hist_note_intro1_action(INTRO1_SUCCESS); + increment_intro1_action(INTRO1_SUCCESS); /* Success! Send an INTRODUCE_ACK success status onto the client circuit. */ status = TRUNNEL_HS_INTRO_ACK_STATUS_SUCCESS; ret = 0; @@ -747,7 +748,7 @@ circuit_is_suitable_for_introduce1(const or_circuit_t *circ) } if (circ->already_received_introduce1) { - rep_hist_note_intro1_action(INTRO1_CIRCUIT_REUSED); + increment_intro1_action(INTRO1_CIRCUIT_REUSED); log_fn(LOG_PROTOCOL_WARN, LD_REND, "Blocking multiple introductions on the same circuit. " "Someone might be trying to attack a hidden service through " @@ -757,7 +758,7 @@ circuit_is_suitable_for_introduce1(const or_circuit_t *circ) /* Disallow single hop client circuit. */ if (circ->p_chan && channel_is_client(circ->p_chan)) { - rep_hist_note_intro1_action(INTRO1_SINGLE_HOP); + increment_intro1_action(INTRO1_SINGLE_HOP); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Single hop client was rejected while trying to introduce. " "Closing circuit."); @@ -779,7 +780,7 @@ hs_intro_received_introduce1(or_circuit_t *circ, const uint8_t *request, /* A cell that can't hold a DIGEST_LEN is invalid. */ if (request_len < DIGEST_LEN) { - rep_hist_note_intro1_action(INTRO1_MALFORMED); + increment_intro1_action(INTRO1_MALFORMED); log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "Invalid INTRODUCE1 cell length."); goto err; } |