Browse Source

when you tried to set orport through the controller, it would
trigger an assert because you hadn't made your onion keys yet
you wanted to launch cpu workers.

now init keys first, reset uptime, and tell the user that we're
starting the reachability testing.


svn:r5835

Roger Dingledine 20 years ago
parent
commit
21be9dc3c0
1 changed files with 10 additions and 0 deletions
  1. 10 0
      src/or/config.c

+ 10 - 0
src/or/config.c

@@ -729,6 +729,16 @@ options_act(or_options_t *old_options)
 
 
     if (options_transition_affects_workers(old_options, options)) {
     if (options_transition_affects_workers(old_options, options)) {
       info(LD_GENERAL,"Worker-related options changed. Rotating workers.");
       info(LD_GENERAL,"Worker-related options changed. Rotating workers.");
+      if (server_mode(options) && !server_mode(old_options)) {
+        extern int has_completed_circuit;
+        if (init_keys() < 0) {
+          err(LD_GENERAL,"Error initializing keys; exiting");
+          return -1;
+        }
+        server_has_changed_ip();
+        if (has_completed_circuit)
+          inform_testing_reachability();
+      }
       cpuworkers_rotate();
       cpuworkers_rotate();
       dnsworkers_rotate();
       dnsworkers_rotate();
     }
     }