Browse Source

Refactor HS client state-clearing code into a separate function

Robert Ransom 13 years ago
parent
commit
d7af8a2f07
3 changed files with 13 additions and 3 deletions
  1. 1 3
      src/or/main.c
  2. 10 0
      src/or/rendclient.c
  3. 2 0
      src/or/rendclient.h

+ 1 - 3
src/or/main.c

@@ -853,9 +853,7 @@ signewnym_impl(time_t now)
 
   circuit_expire_all_dirty_circs();
   addressmap_clear_transient();
-  rend_cache_purge();
-  rend_client_cancel_descriptor_fetches();
-  rend_client_purge_last_hid_serv_requests();
+  rend_client_purge_state();
   time_of_last_signewnym = now;
   signewnym_is_pending = 0;
 }

+ 10 - 0
src/or/rendclient.c

@@ -27,6 +27,16 @@ static extend_info_t *rend_client_get_random_intro_impl(
                           const rend_cache_entry_t *rend_query,
                           const int strict, const int warnings);
 
+/** Purge all potentially remotely-detectable state held in the hidden
+ * service client code.  Called on SIGNAL NEWNYM. */
+void
+rend_client_purge_state(void)
+{
+  rend_cache_purge();
+  rend_client_cancel_descriptor_fetches();
+  rend_client_purge_last_hid_serv_requests();
+}
+
 /** Called when we've established a circuit to an introduction point:
  * send the introduction request. */
 void

+ 2 - 0
src/or/rendclient.h

@@ -12,6 +12,8 @@
 #ifndef _TOR_RENDCLIENT_H
 #define _TOR_RENDCLIENT_H
 
+void rend_client_purge_state(void);
+
 void rend_client_introcirc_has_opened(origin_circuit_t *circ);
 void rend_client_rendcirc_has_opened(origin_circuit_t *circ);
 int rend_client_introduction_acked(origin_circuit_t *circ,