diff options
| author | George Kadianakis <desnacked@riseup.net> | 2016-06-21 15:05:59 +0300 |
|---|---|---|
| committer | George Kadianakis <desnacked@riseup.net> | 2016-06-21 15:05:59 +0300 |
| commit | 9d17f9f0900764e591cf00cebd727449dbcdf730 (patch) | |
| tree | 0253138022d8626d909ec1077000d066bc81b659 | |
| parent | 49e8f47505a64f46981e3caa8c167594ae6936ff (diff) | |
Fix bug when disabling heartbeats.bug19454
Callbacks can't return 0.
| -rw-r--r-- | changes/bug19454 | 3 | ||||
| -rw-r--r-- | src/or/main.c | 12 |
2 files changed, 12 insertions, 3 deletions
diff --git a/changes/bug19454 b/changes/bug19454 new file mode 100644 index 000000000..05650b5c6 --- /dev/null +++ b/changes/bug19454 @@ -0,0 +1,3 @@ + o Minor bugfixes (heartbeat): + - Fix regression that crashes Tor when disabling heartbeats. Fixes bug + 19454; bugfix on tor-0.2.8.1-alpha. Reported by "kubaku". diff --git a/src/or/main.c b/src/or/main.c index 9f3306dc4..4de2e70a1 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -2004,18 +2004,24 @@ check_fw_helper_app_callback(time_t now, const or_options_t *options) return PORT_FORWARDING_CHECK_INTERVAL; } +/** Callback to write heartbeat message in the logs. */ static int heartbeat_callback(time_t now, const or_options_t *options) { static int first = 1; - /* 12. write the heartbeat message */ + + /* Check if heartbeat is disabled */ + if (!options->HeartbeatPeriod) { + return PERIODIC_EVENT_NO_UPDATE; + } + + /* Write the heartbeat message */ if (first) { first = 0; /* Skip the first one. */ } else { log_heartbeat(now); } - /* XXXX This isn't such a good way to handle possible changes in the - * callback event */ + return options->HeartbeatPeriod; } |
