]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
stop asserting at boot
authorRoger Dingledine <arma@torproject.org>
Tue, 31 May 2011 03:50:37 +0000 (23:50 -0400)
committerRoger Dingledine <arma@torproject.org>
Tue, 31 May 2011 03:50:37 +0000 (23:50 -0400)
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.

src/or/config.c

index f97e9b1beaaa35f2ab8ed6eba60cb255ea8fdc37..6635cac5d6c6783902a892302f09e2e8083ec9bb 100644 (file)
@@ -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)