mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 20:33:31 +01:00
prop224: Make circuit prediction aware of v3 services
Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
713eb08bc9
commit
6c3d525c36
@ -1116,7 +1116,7 @@ needs_exit_circuits(time_t now, int *needs_uptime, int *needs_capacity)
|
|||||||
STATIC int
|
STATIC int
|
||||||
needs_hs_server_circuits(int num_uptime_internal)
|
needs_hs_server_circuits(int num_uptime_internal)
|
||||||
{
|
{
|
||||||
return (rend_num_services() &&
|
return ((rend_num_services() || hs_service_get_num_services()) &&
|
||||||
num_uptime_internal < SUFFICIENT_UPTIME_INTERNAL_HS_SERVERS &&
|
num_uptime_internal < SUFFICIENT_UPTIME_INTERNAL_HS_SERVERS &&
|
||||||
router_have_consensus_path() != CONSENSUS_PATH_UNKNOWN);
|
router_have_consensus_path() != CONSENSUS_PATH_UNKNOWN);
|
||||||
}
|
}
|
||||||
|
@ -2390,6 +2390,16 @@ service_add_fnames_to_list(const hs_service_t *service, smartlist_t *list)
|
|||||||
/* Public API */
|
/* Public API */
|
||||||
/* ========== */
|
/* ========== */
|
||||||
|
|
||||||
|
/* Return the number of service we have configured and usable. */
|
||||||
|
unsigned int
|
||||||
|
hs_service_get_num_services(void)
|
||||||
|
{
|
||||||
|
if (hs_service_map == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return HT_SIZE(hs_service_map);
|
||||||
|
}
|
||||||
|
|
||||||
/* Called once an introduction circuit is closed. If the circuit doesn't have
|
/* Called once an introduction circuit is closed. If the circuit doesn't have
|
||||||
* a v3 identifier, it is ignored. */
|
* a v3 identifier, it is ignored. */
|
||||||
void
|
void
|
||||||
|
@ -253,6 +253,7 @@ void hs_service_free_all(void);
|
|||||||
hs_service_t *hs_service_new(const or_options_t *options);
|
hs_service_t *hs_service_new(const or_options_t *options);
|
||||||
void hs_service_free(hs_service_t *service);
|
void hs_service_free(hs_service_t *service);
|
||||||
|
|
||||||
|
unsigned int hs_service_get_num_services(void);
|
||||||
void hs_service_stage_services(const smartlist_t *service_list);
|
void hs_service_stage_services(const smartlist_t *service_list);
|
||||||
int hs_service_load_all_keys(void);
|
int hs_service_load_all_keys(void);
|
||||||
void hs_service_lists_fnames_for_sandbox(smartlist_t *file_list,
|
void hs_service_lists_fnames_for_sandbox(smartlist_t *file_list,
|
||||||
|
Loading…
Reference in New Issue
Block a user