[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] prop224: Make circuit prediction aware of v3 services
commit 6c3d525c361adac1ad769f87a343fe3e9d2b050b
Author: David Goulet <dgoulet@xxxxxxxxxxxxxx>
Date: Tue Jul 11 11:18:23 2017 -0400
prop224: Make circuit prediction aware of v3 services
Signed-off-by: David Goulet <dgoulet@xxxxxxxxxxxxxx>
---
src/or/circuituse.c | 2 +-
src/or/hs_service.c | 10 ++++++++++
src/or/hs_service.h | 1 +
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index b19f9ed46..5292dc01d 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -1116,7 +1116,7 @@ needs_exit_circuits(time_t now, int *needs_uptime, int *needs_capacity)
STATIC int
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 &&
router_have_consensus_path() != CONSENSUS_PATH_UNKNOWN);
}
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index d717b9ce2..a20de94b1 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -2390,6 +2390,16 @@ service_add_fnames_to_list(const hs_service_t *service, smartlist_t *list)
/* 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
* a v3 identifier, it is ignored. */
void
diff --git a/src/or/hs_service.h b/src/or/hs_service.h
index bc29c3d82..f46c4f51a 100644
--- a/src/or/hs_service.h
+++ b/src/or/hs_service.h
@@ -253,6 +253,7 @@ void hs_service_free_all(void);
hs_service_t *hs_service_new(const or_options_t *options);
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);
int hs_service_load_all_keys(void);
void hs_service_lists_fnames_for_sandbox(smartlist_t *file_list,
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits