diff options
-rw-r--r-- | src/log.c | 3 | ||||
-rw-r--r-- | src/run.c | 2 | ||||
-rw-r--r-- | src/stats-mode.c | 8 |
3 files changed, 8 insertions, 5 deletions
@@ -171,6 +171,7 @@ void close_log(void) if (STATE(stats_log) != NULL) fclose(STATE(stats_log)); - if (CONFIG(syslog_facility) != -1) + if (CONFIG(syslog_facility) != -1 || + CONFIG(stats).syslog_facility != -1) closelog(); } @@ -41,7 +41,7 @@ void killer(int foo) destroy_alarm_scheduler(); unlink(CONFIG(lockfile)); dlog(STATE(log), LOG_NOTICE, "---- shutdown received ----"); - close_log(STATE(log)); + close_log(); sigprocmask(SIG_UNBLOCK, &STATE(block), NULL); diff --git a/src/stats-mode.c b/src/stats-mode.c index 05a1b2c..ee9b3fd 100644 --- a/src/stats-mode.c +++ b/src/stats-mode.c @@ -60,9 +60,11 @@ static int init_stats(void) static void kill_stats() { cache_destroy(STATE_STATS(cache)); - buffer_flush(STATE_STATS(buffer_log), - dlog_buffered_ct_flush, - STATE(stats_log)); + /* flush the buffer before exiting */ + if (STATE(stats_log) != NULL) + buffer_flush(STATE(stats_log), + dlog_buffered_ct_flush, + STATE(stats_log)); } /* handler for requests coming via UNIX socket */ |