Merge remote-tracking branch 'teor/bug21596_030' into maint-0.3.0

This commit is contained in:
Nick Mathewson 2017-04-03 09:28:33 -04:00
commit a06c465333
2 changed files with 10 additions and 5 deletions

5
changes/bug21596 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes (hidden services):
- Make hidden services check for failed intro point connections, even when
they have exceeded their intro point creation limit. Fixes bug 21596;
bugfix on commit d67bf8b2f23 in Tor 0.2.7.2-alpha. Reported by
alecmuffett.

View File

@ -4070,6 +4070,10 @@ rend_consider_services_intro_points(void)
smartlist_clear(exclude_nodes);
smartlist_clear(retry_nodes);
/* Cleanup the invalid intro points and save the node objects, if any,
* in the exclude_nodes and retry_nodes lists. */
remove_invalid_intro_points(service, exclude_nodes, retry_nodes, now);
/* This retry period is important here so we don't stress circuit
* creation. */
if (now > service->intro_period_started + INTRO_CIRC_RETRY_PERIOD) {
@ -4080,14 +4084,10 @@ rend_consider_services_intro_points(void)
rend_max_intro_circs_per_period(
service->n_intro_points_wanted)) {
/* We have failed too many times in this period; wait for the next
* one before we try again. */
* one before we try to initiate any more connections. */
continue;
}
/* Cleanup the invalid intro points and save the node objects, if apply,
* in the exclude_nodes and retry_nodes list. */
remove_invalid_intro_points(service, exclude_nodes, retry_nodes, now);
/* Let's try to rebuild circuit on the nodes we want to retry on. */
SMARTLIST_FOREACH_BEGIN(retry_nodes, rend_intro_point_t *, intro) {
r = rend_service_launch_establish_intro(service, intro);