diff options
-rw-r--r-- | changes/bug13447 | 5 | ||||
-rw-r--r-- | src/or/config.c | 2 | ||||
-rw-r--r-- | src/or/rendservice.c | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/changes/bug13447 b/changes/bug13447 new file mode 100644 index 0000000000..90027e8f3a --- /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 dc2fc13b9a..5b62c565b9 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 3fed540e84..353c671550 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) { |