mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-25 07:07:52 +01:00
Record the time at which each intro point was first published
This commit is contained in:
parent
6f220de7b9
commit
c60148c7f5
2 changed files with 13 additions and 0 deletions
|
@ -3480,6 +3480,11 @@ typedef struct rend_intro_point_t {
|
||||||
* circuit to this intro point for some reason other than our
|
* circuit to this intro point for some reason other than our
|
||||||
* circuit-build timeout. See also MAX_INTRO_POINT_REACHABILITY_FAILURES. */
|
* circuit-build timeout. See also MAX_INTRO_POINT_REACHABILITY_FAILURES. */
|
||||||
unsigned int unreachable_count : 3;
|
unsigned int unreachable_count : 3;
|
||||||
|
|
||||||
|
/** (Service side only) The time at which this intro point was first
|
||||||
|
* published, or -1 if this intro point has not yet been
|
||||||
|
* published. */
|
||||||
|
time_t time_published;
|
||||||
} rend_intro_point_t;
|
} rend_intro_point_t;
|
||||||
|
|
||||||
/** Information used to connect to a hidden service. Used on both the
|
/** Information used to connect to a hidden service. Used on both the
|
||||||
|
|
|
@ -554,6 +554,13 @@ rend_service_update_descriptor(rend_service_t *service)
|
||||||
if (intro_svc->intro_key)
|
if (intro_svc->intro_key)
|
||||||
intro_desc->intro_key = crypto_pk_dup_key(intro_svc->intro_key);
|
intro_desc->intro_key = crypto_pk_dup_key(intro_svc->intro_key);
|
||||||
smartlist_add(d->intro_nodes, intro_desc);
|
smartlist_add(d->intro_nodes, intro_desc);
|
||||||
|
|
||||||
|
if (intro_svc->time_published == -1) {
|
||||||
|
/* We are publishing this intro point in a descriptor for the
|
||||||
|
* first time -- note the current time in the service's copy of
|
||||||
|
* the intro point. */
|
||||||
|
intro_svc->time_published = time(NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1952,6 +1959,7 @@ rend_services_introduce(void)
|
||||||
intro->extend_info = extend_info_from_router(router);
|
intro->extend_info = extend_info_from_router(router);
|
||||||
intro->intro_key = crypto_new_pk_env();
|
intro->intro_key = crypto_new_pk_env();
|
||||||
tor_assert(!crypto_pk_generate_key(intro->intro_key));
|
tor_assert(!crypto_pk_generate_key(intro->intro_key));
|
||||||
|
intro->time_published = -1;
|
||||||
smartlist_add(service->intro_nodes, intro);
|
smartlist_add(service->intro_nodes, intro);
|
||||||
log_info(LD_REND, "Picked router %s as an intro point for %s.",
|
log_info(LD_REND, "Picked router %s as an intro point for %s.",
|
||||||
safe_str_client(router_describe(router)),
|
safe_str_client(router_describe(router)),
|
||||||
|
|
Loading…
Add table
Reference in a new issue