[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Fix a test assertion failure due to uninitialized mainloop events
commit 302908657f492f064f9bddac794db477f53ab958
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Thu Apr 26 14:38:43 2018 -0400
Fix a test assertion failure due to uninitialized mainloop events
Bug not in any released Tor.
---
src/or/main.c | 23 +++++++++++++++--------
src/or/main.h | 1 +
src/test/testing_common.c | 3 +++
3 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/src/or/main.c b/src/or/main.c
index 83d1e6a41..a7896fafa 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -2617,6 +2617,20 @@ do_hup(void)
return 0;
}
+/** Initialize some mainloop_event_t objects that we require. */
+STATIC void
+initialize_mainloop_events(void)
+{
+ if (!schedule_active_linked_connections_event) {
+ schedule_active_linked_connections_event =
+ mainloop_event_postloop_new(schedule_active_linked_connections_cb, NULL);
+ }
+ if (!postloop_cleanup_ev) {
+ postloop_cleanup_ev =
+ mainloop_event_postloop_new(postloop_cleanup_cb, NULL);
+ }
+}
+
/** Tor main loop. */
int
do_main_loop(void)
@@ -2630,14 +2644,7 @@ do_main_loop(void)
initialize_periodic_events();
}
- if (!schedule_active_linked_connections_event) {
- schedule_active_linked_connections_event =
- mainloop_event_postloop_new(schedule_active_linked_connections_cb, NULL);
- }
- if (!postloop_cleanup_ev) {
- postloop_cleanup_ev =
- mainloop_event_postloop_new(postloop_cleanup_cb, NULL);
- }
+ initialize_mainloop_events();
/* initialize dns resolve map, spawn workers if needed */
if (dns_init() < 0) {
diff --git a/src/or/main.h b/src/or/main.h
index 4f3b84e30..33ef40ce4 100644
--- a/src/or/main.h
+++ b/src/or/main.h
@@ -97,6 +97,7 @@ extern token_bucket_rw_t global_relayed_bucket;
#ifdef MAIN_PRIVATE
STATIC void init_connection_lists(void);
+STATIC void initialize_mainloop_events(void);
STATIC void close_closeable_connections(void);
STATIC void initialize_periodic_events(void);
STATIC void teardown_periodic_events(void);
diff --git a/src/test/testing_common.c b/src/test/testing_common.c
index b9b36d96d..312c07471 100644
--- a/src/test/testing_common.c
+++ b/src/test/testing_common.c
@@ -8,6 +8,7 @@
* \brief Common pieces to implement unit tests.
**/
+#define MAIN_PRIVATE
#include "orconfig.h"
#include "or.h"
#include "control.h"
@@ -16,6 +17,7 @@
#include "backtrace.h"
#include "test.h"
#include "channelpadding.h"
+#include "main.h"
#include <stdio.h>
#ifdef HAVE_FCNTL_H
@@ -290,6 +292,7 @@ main(int c, const char **v)
}
rep_hist_init();
setup_directory();
+ initialize_mainloop_events();
options_init(options);
options->DataDirectory = tor_strdup(temp_dir);
tor_asprintf(&options->KeyDirectory, "%s"PATH_SEPARATOR"keys",
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits