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

Patch from akwizgran.  Ticket 13447.
This commit is contained in:
Nick Mathewson
2014-11-20 11:51:36 -05:00
parent 126f220071
commit f15cd22bb7
3 changed files with 11 additions and 0 deletions
+5
View File
@@ -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.
+2
View File
@@ -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
View File
@@ -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) {