[tor-commits] [tor/release-0.2.9] hs: Use hs_service_max_rdv_failures consensus param, defaulting to 2

nickm at torproject.org nickm at torproject.org
Fri Jan 19 21:32:22 UTC 2018


commit 490ae26b24a6b2b8843515425cedabf99801163a
Author: Roger Dingledine <arma at torproject.org>
Date:   Fri Jan 19 03:00:43 2018 -0500

    hs: Use hs_service_max_rdv_failures consensus param, defaulting to 2
---
 changes/bug24895     | 10 ++++++----
 src/or/rendservice.c | 10 +++++++++-
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/changes/bug24895 b/changes/bug24895
index 7b90f6d26..7edde94a0 100644
--- a/changes/bug24895
+++ b/changes/bug24895
@@ -1,6 +1,8 @@
   o Major bugfixes (onion services):
-    - Fix an "off by 2" error in counting rendezvous failures on the
-      onion service side. While we thought we would stop the rendezvous
-      attempt after one failed circuit, we were actually making three
-      circuit attempts before giving up. Fixes bug 24895; bugfix on 0.0.6.
+    - Fix an "off by 2" error in counting rendezvous failures on the onion
+      service side. While we thought we would stop the rendezvous attempt
+      after one failed circuit, we were actually making three circuit attempts
+      before giving up. Now switch to a default of 2, and allow the consensus
+      parameter "hs_service_max_rdv_failures" to override. Fixes bug 24895;
+      bugfix on 0.0.6.
 
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index b503eda7f..da200d138 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -111,13 +111,21 @@ struct rend_service_port_config_s {
 /** How many seconds should we spend trying to connect to a requested
  * rendezvous point before giving up? */
 #define MAX_REND_TIMEOUT 30
+/* Default, minimum and maximum values for the maximum rendezvous failures
+ * consensus parameter. */
+#define MAX_REND_FAILURES_DEFAULT 2
+#define MAX_REND_FAILURES_MIN 1
+#define MAX_REND_FAILURES_MAX 10
 
 /** How many times will a hidden service operator attempt to connect to
  * a requested rendezvous point before giving up? */
 static int
 get_max_rend_failures(void)
 {
-  return 1;
+  return networkstatus_get_param(NULL, "hs_service_max_rdv_failures",
+                                 MAX_REND_FAILURES_DEFAULT,
+                                 MAX_REND_FAILURES_MIN,
+                                 MAX_REND_FAILURES_MAX);
 }
 
 /* Hidden service directory file names:





More information about the tor-commits mailing list