[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Make hidden services always check for failed intro point connections
commit 3e2d06bd3d574eb47ec27edcc6832ed9678e7863
Author: teor <teor2345@xxxxxxxxx>
Date: Thu Mar 2 15:33:09 2017 +1100
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.
---
changes/bug21596 | 5 +++++
src/or/rendservice.c | 10 +++++-----
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/changes/bug21596 b/changes/bug21596
new file mode 100644
index 0000000..ec0a46b
--- /dev/null
+++ b/changes/bug21596
@@ -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.
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index cb87624..c23d45c 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);
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits