mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Actually disable NEED_NET periodic events when DisableNetwork is set
Fixes bug 28348; bugfix on 0.3.4.1-alpha
This commit is contained in:
parent
5acf6f8717
commit
2aff02eb3d
2 changed files with 9 additions and 3 deletions
5
changes/bug28348_034
Normal file
5
changes/bug28348_034
Normal file
|
@ -0,0 +1,5 @@
|
|||
o Major bugfixes (embedding, main loop):
|
||||
- When DisableNetwork becomes set, actually disable periodic events that
|
||||
are already enabled. (Previously, we would refrain from enabling new
|
||||
ones, but we would leave the old ones turned on.)
|
||||
Fixes bug 28348; bugfix on 0.3.4.1-alpha.
|
|
@ -1597,15 +1597,17 @@ rescan_periodic_events(const or_options_t *options)
|
|||
for (int i = 0; periodic_events[i].name; ++i) {
|
||||
periodic_event_item_t *item = &periodic_events[i];
|
||||
|
||||
int enable = !!(item->roles & roles);
|
||||
|
||||
/* Handle the event flags. */
|
||||
if (net_is_disabled() &&
|
||||
(item->flags & PERIODIC_EVENT_FLAG_NEED_NET)) {
|
||||
continue;
|
||||
enable = 0;
|
||||
}
|
||||
|
||||
/* 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) {
|
||||
if (enable) {
|
||||
log_debug(LD_GENERAL, "Launching periodic event %s", item->name);
|
||||
periodic_event_enable(item);
|
||||
} else {
|
||||
|
@ -4319,4 +4321,3 @@ tor_run_main(const tor_main_configuration_t *tor_cfg)
|
|||
tor_cleanup();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue