summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/or/hs_service.c3
-rw-r--r--src/or/rendservice.c11
-rw-r--r--src/or/rendservice.h1
3 files changed, 15 insertions, 0 deletions
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index bce976ee8c..eb58c768bb 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -616,6 +616,9 @@ hs_service_init(void)
tor_assert(!hs_service_map);
tor_assert(!hs_service_staging_list);
+ /* v2 specific. */
+ rend_service_init();
+
hs_service_map = tor_malloc_zero(sizeof(struct hs_service_ht));
HT_INIT(hs_service_ht, hs_service_map);
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index 358efd0ed9..67da760069 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -257,6 +257,17 @@ rend_service_free_all(void)
rend_service_free_staging_list();
}
+/* Initialize the subsystem. */
+void
+rend_service_init(void)
+{
+ tor_assert(!rend_service_list);
+ tor_assert(!rend_service_staging_list);
+
+ rend_service_list = smartlist_new();
+ rend_service_staging_list = smartlist_new();
+}
+
/* Validate a <b>service</b>. Use the <b>service_list</b> to make sure there
* is no duplicate entry for the given service object. Return 0 if valid else
* -1 if not.*/
diff --git a/src/or/rendservice.h b/src/or/rendservice.h
index 361a119e49..20e827d2aa 100644
--- a/src/or/rendservice.h
+++ b/src/or/rendservice.h
@@ -179,6 +179,7 @@ int rend_service_set_connection_addr_port(edge_connection_t *conn,
origin_circuit_t *circ);
void rend_service_dump_stats(int severity);
void rend_service_free_all(void);
+void rend_service_init(void);
rend_service_port_config_t *rend_service_parse_port_config(const char *string,
const char *sep,