summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-06-02 02:57:29 -0700
committerRobert Ransom <rransom.8774@gmail.com>2011-06-02 02:57:29 -0700
commitd7af8a2f076a38d8be32798d34049ce150c8dda0 (patch)
tree45a482b170c8af71146351479b2462d7f7b043ef
parentb0e7925c0205a68d730025cc8832110c1675cfd7 (diff)
downloadtor-d7af8a2f076a38d8be32798d34049ce150c8dda0.tar.gz
tor-d7af8a2f076a38d8be32798d34049ce150c8dda0.zip
Refactor HS client state-clearing code into a separate function
-rw-r--r--src/or/main.c4
-rw-r--r--src/or/rendclient.c10
-rw-r--r--src/or/rendclient.h2
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,