Commit 56771f39 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

stop asserting at boot

The patch for 3228 made us try to run init_keys() before we had loaded
our state file, resulting in an assert inside init_keys. We had moved
it too early in the function.

Now it's later in the function, but still above the accounting calls.
parent e035cea0
Loading
Loading
Loading
Loading
+11 −12
Changes for src/or/config.c: 11 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -1180,18 +1180,6 @@ options_act(or_options_t *old_options)
      return -1;
  }

  /* We want to reinit keys as needed before we do much of anything else:
     keys are important, and other things can depend on them. */
  if (running_tor &&
      (transition_affects_workers ||
       (options->V3AuthoritativeDir && (!old_options ||
                                        !old_options->V3AuthoritativeDir)))) {
    if (init_keys() < 0) {
      log_warn(LD_BUG,"Error initializing keys; exiting");
      return -1;
    }
  }

  if (consider_adding_dir_authorities(options, old_options) < 0)
    return -1;

@@ -1237,6 +1225,17 @@ options_act(or_options_t *old_options)
    finish_daemon(options->DataDirectory);
  }

  /* We want to reinit keys as needed before we do much of anything else:
     keys are important, and other things can depend on them. */
  if (transition_affects_workers ||
      (options->V3AuthoritativeDir && (!old_options ||
                                       !old_options->V3AuthoritativeDir))) {
    if (init_keys() < 0) {
      log_warn(LD_BUG,"Error initializing keys; exiting");
      return -1;
    }
  }

  /* Write our PID to the PID file. If we do not have write permissions we
   * will log a warning */
  if (options->PidFile)