mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Add HS v3 status to the SIGUSR1 dumpstats()
This commit is contained in:
parent
db4815dd8e
commit
fd5ea48c27
@ -414,6 +414,7 @@ dumpstats(int severity)
|
|||||||
|
|
||||||
rep_hist_dump_stats(now,severity);
|
rep_hist_dump_stats(now,severity);
|
||||||
rend_service_dump_stats(severity);
|
rend_service_dump_stats(severity);
|
||||||
|
hs_service_dump_stats(severity);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -4103,6 +4103,50 @@ hs_service_load_all_keys(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Log the status of introduction points for all version 3 onion services
|
||||||
|
* at log severity <b>severity</b>.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
hs_service_dump_stats(int severity)
|
||||||
|
{
|
||||||
|
origin_circuit_t *circ;
|
||||||
|
|
||||||
|
FOR_EACH_SERVICE_BEGIN(hs) {
|
||||||
|
|
||||||
|
tor_log(severity, LD_GENERAL, "Service configured in %s:",
|
||||||
|
service_escaped_dir(hs));
|
||||||
|
FOR_EACH_DESCRIPTOR_BEGIN(hs, desc) {
|
||||||
|
|
||||||
|
DIGEST256MAP_FOREACH(desc->intro_points.map, key,
|
||||||
|
hs_service_intro_point_t *, ip) {
|
||||||
|
const node_t *intro_node;
|
||||||
|
const char *nickname;
|
||||||
|
|
||||||
|
intro_node = get_node_from_intro_point(ip);
|
||||||
|
if (!intro_node) {
|
||||||
|
tor_log(severity, LD_GENERAL, " Couldn't find intro point, "
|
||||||
|
"skipping");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
nickname = node_get_nickname(intro_node);
|
||||||
|
if (!nickname) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
circ = hs_circ_service_get_intro_circ(ip);
|
||||||
|
if (!circ) {
|
||||||
|
tor_log(severity, LD_GENERAL, " Intro point at %s: no circuit",
|
||||||
|
nickname);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
tor_log(severity, LD_GENERAL, " Intro point %s: circuit is %s",
|
||||||
|
nickname, circuit_state_to_string(circ->base_.state));
|
||||||
|
} DIGEST256MAP_FOREACH_END;
|
||||||
|
|
||||||
|
} FOR_EACH_DESCRIPTOR_END;
|
||||||
|
} FOR_EACH_SERVICE_END;
|
||||||
|
}
|
||||||
|
|
||||||
/** Put all service object in the given service list. After this, the caller
|
/** Put all service object in the given service list. After this, the caller
|
||||||
* looses ownership of every elements in the list and responsible to free the
|
* looses ownership of every elements in the list and responsible to free the
|
||||||
* list pointer. */
|
* list pointer. */
|
||||||
|
@ -373,6 +373,8 @@ void hs_service_upload_desc_to_dir(const char *encoded_desc,
|
|||||||
hs_circuit_id_protocol_t
|
hs_circuit_id_protocol_t
|
||||||
hs_service_exports_circuit_id(const ed25519_public_key_t *pk);
|
hs_service_exports_circuit_id(const ed25519_public_key_t *pk);
|
||||||
|
|
||||||
|
void hs_service_dump_stats(int severity);
|
||||||
|
|
||||||
#ifdef HS_SERVICE_PRIVATE
|
#ifdef HS_SERVICE_PRIVATE
|
||||||
|
|
||||||
#ifdef TOR_UNIT_TESTS
|
#ifdef TOR_UNIT_TESTS
|
||||||
|
Loading…
Reference in New Issue
Block a user