Browse Source

hs: Add rend_service_init()

Initialize both the global and staging service lists.

Signed-off-by: David Goulet <dgoulet@torproject.org>
David Goulet 6 years ago
parent
commit
87f6f96f47
3 changed files with 15 additions and 0 deletions
  1. 3 0
      src/or/hs_service.c
  2. 11 0
      src/or/rendservice.c
  3. 1 0
      src/or/rendservice.h

+ 3 - 0
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);
 

+ 11 - 0
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.*/

+ 1 - 0
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,