aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Hahn <sebastian@torproject.org>2015-02-15 11:49:19 +0100
committerSebastian Hahn <sebastian@torproject.org>2015-02-15 11:49:19 +0100
commit3bcdb26267502e0d1de5d01854c8a2cf29a5e5f4 (patch)
tree9c36d82aa3362c982229153b5bd54f6969967791
parent424edd57105ea6eaf96d7db66e00ac1298f9dc52 (diff)
downloadtor-3bcdb26267502e0d1de5d01854c8a2cf29a5e5f4.tar.gz
tor-3bcdb26267502e0d1de5d01854c8a2cf29a5e5f4.zip
Call cpu_init if we change to being a relay
The issue is that we use the cpuworker system with relays only, so if we start up as a client and transition to being a relay later, we'll be sad. This fixes bug 14901; not in any released version of Tor.
-rw-r--r--src/or/config.c1
-rw-r--r--src/or/cpuworker.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/or/config.c b/src/or/config.c
index ad4fd45846..8d15d0df2f 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -1721,6 +1721,7 @@ options_act(const or_options_t *old_options)
"Worker-related options changed. Rotating workers.");
if (server_mode(options) && !server_mode(old_options)) {
+ cpu_init();
ip_address_changed(0);
if (have_completed_a_circuit() || !any_predicted_circuits(time(NULL)))
inform_testing_reachability();
diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c
index c5e78ed716..5787c75530 100644
--- a/src/or/cpuworker.c
+++ b/src/or/cpuworker.c
@@ -71,7 +71,8 @@ replyqueue_process_cb(evutil_socket_t sock, short events, void *arg)
replyqueue_process(rq);
}
-/** Initialize the cpuworker subsystem.
+/** Initialize the cpuworker subsystem. It is OK to call this more than once
+ * during Tor's lifetime.
*/
void
cpu_init(void)