diff options
author | teor <teor2345@gmail.com> | 2017-03-02 15:33:09 +1100 |
---|---|---|
committer | teor <teor2345@gmail.com> | 2017-03-02 15:57:58 +1100 |
commit | 3e2d06bd3d574eb47ec27edcc6832ed9678e7863 (patch) | |
tree | 7c55447bb1d4a4a97fdaf26b7d3a07e70a7abecb /src/or/rendservice.c | |
parent | 9af76a958316ce58485d12bf0e519fc79c0e4999 (diff) | |
download | tor-3e2d06bd3d574eb47ec27edcc6832ed9678e7863.tar.gz tor-3e2d06bd3d574eb47ec27edcc6832ed9678e7863.zip |
Make hidden services always check for failed intro point connections
Previously, they would stop checking when they exceeded their intro point
creation limit.
Fixes bug 21596; bugfix on commit d67bf8b2f23 in Tor 0.2.7.2-alpha.
Reported by alecmuffett.
Diffstat (limited to 'src/or/rendservice.c')
-rw-r--r-- | src/or/rendservice.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/or/rendservice.c b/src/or/rendservice.c index cb87624df5..c23d45cf34 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -4061,6 +4061,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) { @@ -4070,14 +4074,10 @@ rend_consider_services_intro_points(void) } else if (service->n_intro_circuits_launched >= MAX_INTRO_CIRCS_PER_PERIOD) { /* 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); |