tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 97fad9948312417099fe3d8f5b17484be91ad3f9
parent 2878dad9dbc1e07f608fa3acddc76261e4d76648
Author: Gabriel L. Somlo <gsomlo@gmail.com>
Date:   Mon, 14 May 2018 11:47:22 -0400

Allow single DA if explicitly configured

When on a private network a single directory authority is explicitly
configured, allow that DA's instace of tor to pick itself as its own
DA, by having router_pick_dirserver_generic() set the PDS_ALLOW_SELF
flag when the list of potential sources contains only one element.
This would subsequently allow router_pick_trusteddirserver_impl() to
calculate is 'requreother' condition as 'false', enabling it to pick
itself as a valid DA candidate.

Fixes #25928

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>

Diffstat:
Msrc/or/routerlist.c | 3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/or/routerlist.c b/src/or/routerlist.c @@ -1806,6 +1806,9 @@ router_pick_dirserver_generic(smartlist_t *sourcelist, const routerstatus_t *choice; int busy = 0; + if (smartlist_len(sourcelist) == 1) + flags |= PDS_ALLOW_SELF; + choice = router_pick_trusteddirserver_impl(sourcelist, type, flags, &busy); if (choice || !(flags & PDS_RETRY_IF_NO_SERVERS)) return choice;