aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorteor <teor@torproject.org>2019-10-21 13:07:39 +1000
committerteor <teor@torproject.org>2019-10-21 13:07:39 +1000
commit04e9e74f1dd4fad7fe9e072253dd51b9c03bebf2 (patch)
treeb5d519ef6b64a9e1f72c3b11cf99504a8fba684b
parent5dbdca011454d1d6c9e83bcc1a970ec3c4f368da (diff)
parent4a8d4913227ea1d6b9302cda4703516595a3c1b5 (diff)
downloadtor-04e9e74f1dd4fad7fe9e072253dd51b9c03bebf2.tar.gz
tor-04e9e74f1dd4fad7fe9e072253dd51b9c03bebf2.zip
Merge remote-tracking branch 'tor-github/pr/1422' into maint-0.4.2
-rw-r--r--changes/ticket320585
-rw-r--r--src/core/mainloop/periodic.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/changes/ticket32058 b/changes/ticket32058
new file mode 100644
index 0000000000..b40bcda416
--- /dev/null
+++ b/changes/ticket32058
@@ -0,0 +1,5 @@
+ o Minor bugfixes (mainloop, periodic events):
+ - Periodic events enabled flag was not unset properly when shutting down tor
+ cleanly. This had the side effect to not re-enable periodic events when
+ tor_api.h is used to relaunch tor after a shutdown. Fixes bug 32058;
+ bugfix on 0.3.3.1-alpha.
diff --git a/src/core/mainloop/periodic.c b/src/core/mainloop/periodic.c
index dbc4553a73..5c2f6f2b36 100644
--- a/src/core/mainloop/periodic.c
+++ b/src/core/mainloop/periodic.c
@@ -153,6 +153,11 @@ periodic_event_disconnect(periodic_event_item_t *event)
{
if (!event)
return;
+
+ /* First disable the event so we first cancel the event and set its enabled
+ * flag properly. */
+ periodic_event_disable(event);
+
mainloop_event_free(event->ev);
event->last_action_time = 0;
}