mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-12 22:23:49 +01:00
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 d67bf8b2f2
in Tor 0.2.7.2-alpha.
Reported by alecmuffett.
This commit is contained in:
parent
75492598b2
commit
e0486c9371
5
changes/bug21596
Normal file
5
changes/bug21596
Normal 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.
|
@ -3930,6 +3930,10 @@ rend_consider_services_intro_points(void)
|
|||||||
smartlist_clear(exclude_nodes);
|
smartlist_clear(exclude_nodes);
|
||||||
smartlist_clear(retry_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
|
/* This retry period is important here so we don't stress circuit
|
||||||
* creation. */
|
* creation. */
|
||||||
if (now > service->intro_period_started + INTRO_CIRC_RETRY_PERIOD) {
|
if (now > service->intro_period_started + INTRO_CIRC_RETRY_PERIOD) {
|
||||||
@ -3939,14 +3943,10 @@ rend_consider_services_intro_points(void)
|
|||||||
} else if (service->n_intro_circuits_launched >=
|
} else if (service->n_intro_circuits_launched >=
|
||||||
MAX_INTRO_CIRCS_PER_PERIOD) {
|
MAX_INTRO_CIRCS_PER_PERIOD) {
|
||||||
/* We have failed too many times in this period; wait for the next
|
/* 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;
|
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. */
|
/* Let's try to rebuild circuit on the nodes we want to retry on. */
|
||||||
SMARTLIST_FOREACH_BEGIN(retry_nodes, rend_intro_point_t *, intro) {
|
SMARTLIST_FOREACH_BEGIN(retry_nodes, rend_intro_point_t *, intro) {
|
||||||
r = rend_service_launch_establish_intro(service, intro);
|
r = rend_service_launch_establish_intro(service, intro);
|
||||||
|
Loading…
Reference in New Issue
Block a user