Browse Source

Stop multiplying logs on sighup.

svn:r1936
Nick Mathewson 21 years ago
parent
commit
605e10a650
3 changed files with 9 additions and 0 deletions
  1. 7 0
      src/common/log.c
  2. 1 0
      src/common/log.h
  3. 1 0
      src/or/main.c

+ 7 - 0
src/common/log.c

@@ -205,6 +205,13 @@ void close_temp_logs(void)
   }
 }
 
+void mark_logs_temp(void)
+{
+  logfile_t *lf;
+  for (lf = logfiles; lf; lf = lf->next)
+    lf->is_temporary = 1;
+}
+
 /**
  * Add a log handler to send messages to <b>filename</b>. If opening
  * the logfile fails, -1 is returned and errno is set appropriately

+ 1 - 0
src/common/log.h

@@ -54,6 +54,7 @@ void close_logs();
 void reset_logs();
 void add_temp_log(void);
 void close_temp_logs(void);
+void mark_logs_temp(void);
 
 /* Outputs a message to stdout */
 void _log(int severity, const char *format, ...) CHECK_PRINTF(2,3);

+ 1 - 0
src/or/main.c

@@ -608,6 +608,7 @@ static int do_hup(void) {
 
   log_fn(LOG_NOTICE,"Received sighup. Reloading config.");
   has_completed_circuit=0;
+  mark_logs_temp(); /* Close current logs once new logs are open. */
   /* first, reload config variables, in case they've changed */
   /* no need to provide argc/v, they've been cached inside init_from_config */
   if (init_from_config(0, NULL) < 0) {