main: Use rescan_periodic_events in initialize_periodic_events_cb

This commit is contained in:
Nick Mathewson 2018-04-17 18:55:28 -04:00 committed by David Goulet
parent 4e85f17eec
commit f70fa67da6

View File

@ -150,6 +150,7 @@ static int run_main_loop_until_done(void);
static void process_signal(int sig);
static void shutdown_did_not_work_callback(evutil_socket_t fd, short event,
void *arg) ATTR_NORETURN;
static void rescan_periodic_events(const or_options_t *options);
/********* START VARIABLES **********/
@ -1478,18 +1479,9 @@ initialize_periodic_events_cb(evutil_socket_t fd, short events, void *data)
(void) events;
(void) data;
int roles = get_my_roles(get_options());
tor_event_free(initialize_periodic_events_event);
for (int i = 0; periodic_events[i].name; ++i) {
periodic_event_item_t *item = &periodic_events[i];
if (item->roles & roles) {
/* This is safe to be called on an already enabled event. */
periodic_event_enable(item);
log_debug(LD_GENERAL, "Launching periodic event %s", item->name);
}
}
rescan_periodic_events(get_options());
}
/** Set up all the members of periodic_events[], and configure them all to be
@ -1546,8 +1538,10 @@ rescan_periodic_events(const or_options_t *options)
/* Enable the event if needed. It is safe to enable an event that was
* already enabled. Same goes for disabling it. */
if (item->roles & roles) {
log_debug(LD_GENERAL, "Launching periodic event %s", item->name);
periodic_event_enable(item);
} else {
log_debug(LD_GENERAL, "Disabling periodic event %s", item->name);
periodic_event_disable(item);
}
}