Commit d2951b38 authored by Nick Mathewson's avatar Nick Mathewson 🥔
Browse files

Merge branch 'maint-0.3.1' into maint-0.3.2

parents 1438c6c7 e8886340
Loading
Loading
Loading
Loading

changes/bug23693.1

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Minor bugfixes (relay, crash):
    - Avoid a crash when running with DirPort set but ORPort tuned off.
      Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
+9 −1
Original line number Diff line number Diff line
@@ -2007,9 +2007,16 @@ options_act(const or_options_t *old_options)
    if (transition_affects_workers) {
      log_info(LD_GENERAL,
               "Worker-related options changed. Rotating workers.");
      const int server_mode_turned_on =
        server_mode(options) && !server_mode(old_options);
      const int dir_server_mode_turned_on =
        dir_server_mode(options) && !dir_server_mode(old_options);

      if (server_mode(options) && !server_mode(old_options)) {
      if (server_mode_turned_on || dir_server_mode_turned_on) {
        cpu_init();
      }

      if (server_mode_turned_on) {
        ip_address_changed(0);
        if (have_completed_a_circuit() || !any_predicted_circuits(time(NULL)))
          inform_testing_reachability();
@@ -4657,6 +4664,7 @@ options_transition_affects_workers(const or_options_t *old_options,
      old_options->SafeLogging_ != new_options->SafeLogging_ ||
      old_options->ClientOnly != new_options->ClientOnly ||
      server_mode(old_options) != server_mode(new_options) ||
      dir_server_mode(old_options) != dir_server_mode(new_options) ||
      public_server_mode(old_options) != public_server_mode(new_options) ||
      !config_lines_eq(old_options->Logs, new_options->Logs) ||
      old_options->LogMessageDomains != new_options->LogMessageDomains)
+1 −1
Original line number Diff line number Diff line
@@ -2520,7 +2520,7 @@ do_main_loop(void)
  now = time(NULL);
  directory_info_has_arrived(now, 1, 0);

  if (server_mode(get_options())) {
  if (server_mode(get_options()) || dir_server_mode(get_options())) {
    /* launch cpuworkers. Need to do this *after* we've read the onion key. */
    cpu_init();
  }
+14 −7
Original line number Diff line number Diff line
@@ -131,7 +131,8 @@ get_onion_key(void)
}

/** Store a full copy of the current onion key into *<b>key</b>, and a full
 * copy of the most recent onion key into *<b>last</b>.
 * copy of the most recent onion key into *<b>last</b>.  Store NULL into
 * a pointer if the corresponding key does not exist.
 */
void
dup_onion_keys(crypto_pk_t **key, crypto_pk_t **last)
@@ -139,8 +140,10 @@ dup_onion_keys(crypto_pk_t **key, crypto_pk_t **last)
  tor_assert(key);
  tor_assert(last);
  tor_mutex_acquire(key_lock);
  tor_assert(onionkey);
  if (onionkey)
    *key = crypto_pk_copy_full(onionkey);
  else
    *last = NULL;
  if (lastonionkey)
    *last = crypto_pk_copy_full(lastonionkey);
  else
@@ -207,10 +210,14 @@ construct_ntor_key_map(void)
{
  di_digest256_map_t *m = NULL;

  if (!tor_mem_is_zero((const char*)
                       curve25519_onion_key.pubkey.public_key,
                       CURVE25519_PUBKEY_LEN)) {
    dimap_add_entry(&m,
                    curve25519_onion_key.pubkey.public_key,
                    tor_memdup(&curve25519_onion_key,
                               sizeof(curve25519_keypair_t)));
  }
  if (!tor_mem_is_zero((const char*)
                          last_curve25519_onion_key.pubkey.public_key,
                       CURVE25519_PUBKEY_LEN)) {