Browse Source

some more patching

svn:r1910
Roger Dingledine 21 years ago
parent
commit
66dd21b7a4
2 changed files with 8 additions and 4 deletions
  1. 4 1
      src/or/config.c
  2. 4 3
      src/or/main.c

+ 4 - 1
src/or/config.c

@@ -757,6 +757,7 @@ static void add_single_log(struct config_line_t *level_opt,
       add_stream_log(levelMin, levelMax, "<stderr>", stderr);
       log_fn(LOG_WARN, "Cannot write to LogFile '%s': %s.", file_opt->value,
              strerror(errno));
+      return;
     }
     log_fn(LOG_NOTICE, "Successfully opened LogFile '%s', redirecting output.",
            file_opt->value);
@@ -775,8 +776,10 @@ void config_init_logs(or_options_t *options)
   struct config_line_t *opt = options->LogOptions;
 
   /* Special case if nothing is specified. */
-  if(!opt)
+  if(!opt) {
     add_single_log(NULL, NULL, options->RunAsDaemon);
+    /* don't return yet, in case we want to do a debuglogfile below */
+  }
 
   /* Special case for if first option is LogLevel. */
   if (opt && !strcasecmp(opt->key, "LogLevel")) {

+ 4 - 3
src/or/main.c

@@ -551,7 +551,6 @@ static int init_from_config(int argc, char **argv) {
     log_fn(LOG_ERR,"Reading config failed. For usage, try -h.");
     return -1;
   }
-  close_logs(); /* we'll close, then open with correct loglevel if necessary */
 
   /* Setuid/setgid as appropriate */
   if(options.User || options.Group) {
@@ -565,6 +564,8 @@ static int init_from_config(int argc, char **argv) {
     start_daemon(options.DataDirectory);
   }
 
+  close_logs(); /* we'll close, then open with correct loglevel if necessary */
+
   /* Configure the log(s) */
   config_init_logs(&options);
 
@@ -578,7 +579,7 @@ static int init_from_config(int argc, char **argv) {
     finish_daemon();
   }
 
-  /* Write our pid to the pid file. if we do not have write permissions we
+  /* Write our pid to the pid file. If we do not have write permissions we
    * will log a warning */
   if(options.PidFile)
     write_pidfile(options.PidFile);
@@ -852,7 +853,7 @@ void exit_function(void)
 int tor_main(int argc, char *argv[]) {
 
   /* give it somewhere to log to initially */
-  add_stream_log(LOG_INFO, LOG_ERR, "<stdout>", stdout);
+  add_stream_log(LOG_NOTICE, LOG_ERR, "<stdout>", stdout);
   log_fn(LOG_NOTICE,"Tor v%s. This is experimental software. Do not use it if you need anonymity.",VERSION);
 
   if (network_init()<0) {