Commit f15cd22b authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Don't build introduction circuits until we know we can build circuits

Patch from akwizgran.  Ticket 13447.
parent 126f2200
Loading
Loading
Loading
Loading

changes/bug13447

0 → 100644
+5 −0
Original line number Diff line number Diff line
  o Minor feature:
    - When re-enabling the network, don't try to build introduction circuits
      until we have successfully built a circuit.  This makes hidden services
      come up faster when the network is re-enabled. Patch from
      "akwizgran". Closes ticket 13447.
+2 −0
Original line number Diff line number Diff line
@@ -1071,6 +1071,8 @@ options_act_reversible(const or_options_t *old_options, char **msg)
                 "non-control network connections. Shutting down all existing "
                 "connections.");
      connection_mark_all_noncontrol_connections();
      /* We can't complete circuits until the network is re-enabled. */
      can_complete_circuit = 0;
    }
  }

+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include "circuituse.h"
#include "config.h"
#include "directory.h"
#include "main.h"
#include "networkstatus.h"
#include "nodelist.h"
#include "rendclient.h"
@@ -3074,6 +3075,9 @@ rend_services_introduce(void)
   * an intro point to. */
  smartlist_t *exclude_nodes = smartlist_new();

  if (!can_complete_circuit)
    return;

  now = time(NULL);

  for (i=0; i < smartlist_len(rend_service_list); ++i) {