[tor/master] Don't build introduction circuits until we know we can build circuits

commit f15cd22bb7c8f4f7009417e50a827c5bcc656807 Author: Nick Mathewson <nickm@torproject.org> Date: Thu Nov 20 11:51:36 2014 -0500 Don't build introduction circuits until we know we can build circuits Patch from akwizgran. Ticket 13447. --- changes/bug13447 | 5 +++++ src/or/config.c | 2 ++ src/or/rendservice.c | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/changes/bug13447 b/changes/bug13447 new file mode 100644 index 0000000..90027e8 --- /dev/null +++ b/changes/bug13447 @@ -0,0 +1,5 @@ + 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. diff --git a/src/or/config.c b/src/or/config.c index dc2fc13..5b62c56 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -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; } } diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 3fed540..353c671 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -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) {
participants (1)
-
nickm@torproject.org