Browse Source

hs: Implement an HS client free all function

Called from main.c, the function for now purges the hidden service directory
request cache.

Signed-off-by: David Goulet <dgoulet@torproject.org>
David Goulet 6 years ago
parent
commit
0850ae5049
3 changed files with 12 additions and 0 deletions
  1. 8 0
      src/or/hs_client.c
  2. 2 0
      src/or/hs_client.h
  3. 2 0
      src/or/hs_common.c

+ 8 - 0
src/or/hs_client.c

@@ -1251,3 +1251,11 @@ hs_client_reextend_intro_circuit(origin_circuit_t *circ)
   return ret;
 }
 
+/* Release all the storage held by the client subsystem. */
+void
+hs_client_free_all(void)
+{
+  /* Purge the hidden service request cache. */
+  hs_purge_last_hid_serv_requests();
+}
+

+ 2 - 0
src/or/hs_client.h

@@ -46,5 +46,7 @@ extend_info_t *hs_client_get_random_intro_from_edge(
 
 int hs_client_reextend_intro_circuit(origin_circuit_t *circ);
 
+void hs_client_free_all(void);
+
 #endif /* TOR_HS_CLIENT_H */
 

+ 2 - 0
src/or/hs_common.c

@@ -19,6 +19,7 @@
 #include "nodelist.h"
 #include "hs_cache.h"
 #include "hs_common.h"
+#include "hs_client.h"
 #include "hs_ident.h"
 #include "hs_service.h"
 #include "policies.h"
@@ -1700,6 +1701,7 @@ hs_free_all(void)
   hs_circuitmap_free_all();
   hs_service_free_all();
   hs_cache_free_all();
+  hs_client_free_all();
 }
 
 /* For the given origin circuit circ, decrement the number of rendezvous