summaryrefslogtreecommitdiff
path: root/src/or/entrynodes.c
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@riseup.net>2018-04-25 15:10:24 +0300
committerNick Mathewson <nickm@torproject.org>2018-04-27 12:44:54 -0400
commitd00ed406e08942d6539281eb28e875939ee214e5 (patch)
treed9691bdb12dec7f01b9c410f7c7615a9f6058632 /src/or/entrynodes.c
parent3bf9974b6c4ee9f2a8204c058e1b7c206b99d620 (diff)
downloadtor-d00ed406e08942d6539281eb28e875939ee214e5.tar.gz
tor-d00ed406e08942d6539281eb28e875939ee214e5.zip
Introduce torrc option NumPrimaryGuards
Diffstat (limited to 'src/or/entrynodes.c')
-rw-r--r--src/or/entrynodes.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c
index 88d1b94deb..061aa6f58c 100644
--- a/src/or/entrynodes.c
+++ b/src/or/entrynodes.c
@@ -432,14 +432,15 @@ get_guard_confirmed_min_lifetime(void)
STATIC int
get_n_primary_guards(void)
{
- const int n = get_options()->NumEntryGuards;
- const int n_dir = get_options()->NumDirectoryGuards;
- if (n > 5) {
- return MAX(n_dir, n + n / 2);
- } else if (n >= 1) {
- return MAX(n_dir, n * 2);
+ /* If the user has explicitly configured the number of primary guards, do
+ * what the user wishes to do */
+ const int configured_primaries = get_options()->NumPrimaryGuards;
+ if (configured_primaries) {
+ return configured_primaries;
}
+ /* otherwise check for consensus parameter and if that's not set either, just
+ * use the default value. */
return networkstatus_get_param(NULL,
"guard-n-primary-guards",
DFLT_N_PRIMARY_GUARDS, 1, INT32_MAX);
@@ -454,6 +455,9 @@ get_n_primary_guards_to_use(guard_usage_t usage)
int configured;
const char *param_name;
int param_default;
+
+ /* If the user has explicitly configured the amount of guards, use
+ that. Otherwise, fall back to the default value. */
if (usage == GUARD_USAGE_DIRGUARD) {
configured = get_options()->NumDirectoryGuards;
param_name = "guard-n-primary-dir-guards-to-use";