From d7af8a2f076a38d8be32798d34049ce150c8dda0 Mon Sep 17 00:00:00 2001 From: Robert Ransom Date: Thu, 2 Jun 2011 02:57:29 -0700 Subject: [PATCH] Refactor HS client state-clearing code into a separate function --- src/or/main.c | 4 +--- src/or/rendclient.c | 10 ++++++++++ src/or/rendclient.h | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/or/main.c b/src/or/main.c index 3c84ddaa64..bc639dbdd8 100644 --- a/src/or/main.c +++ b/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; } diff --git a/src/or/rendclient.c b/src/or/rendclient.c index 12b54df0d6..329b2567d6 100644 --- a/src/or/rendclient.c +++ b/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 diff --git a/src/or/rendclient.h b/src/or/rendclient.h index 2bfc850ad5..c6cf82b3dd 100644 --- a/src/or/rendclient.h +++ b/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,