diff options
author | Roger Dingledine <arma@torproject.org> | 2018-01-19 03:00:43 -0500 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2018-01-19 16:13:54 -0500 |
commit | 490ae26b24a6b2b8843515425cedabf99801163a (patch) | |
tree | 5025635ea9ae35e910a7de73e05bcfa7dea39847 | |
parent | cc5a9e96674f39677a65daa2f7a2f5af7ac3106e (diff) | |
download | tor-490ae26b24a6b2b8843515425cedabf99801163a.tar.gz tor-490ae26b24a6b2b8843515425cedabf99801163a.zip |
hs: Use hs_service_max_rdv_failures consensus param, defaulting to 2
-rw-r--r-- | changes/bug24895 | 10 | ||||
-rw-r--r-- | src/or/rendservice.c | 10 |
2 files changed, 15 insertions, 5 deletions
diff --git a/changes/bug24895 b/changes/bug24895 index 7b90f6d260..7edde94a0b 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 b503eda7ff..da200d1381 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: |