Skip to content
Snippets Groups Projects
Commit 30290865 authored by Nick Mathewson's avatar Nick Mathewson :game_die:
Browse files

Fix a test assertion failure due to uninitialized mainloop events

Bug not in any released Tor.
parent 9fd31916
No related branches found
No related tags found
No related merge requests found
......@@ -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) {
......
......@@ -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);
......
......@@ -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",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment