tor

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

commit df3bdc6bdeb7e8eef13248ba245a70fd8cbf1f86
parent 2cb8c8d99f5e5be6a4a2ded9ef73920f72986f45
Author: Nick Mathewson <nickm@torproject.org>
Date:   Mon, 31 Jul 2017 20:35:58 -0400

Clean up choose_good_entry_server() doc; add assertion

We used to allow state==NULL here, but we no longer do.

Fixes bug 22779.

Diffstat:
Achanges/bug22779 | 4++++
Msrc/or/circuitbuild.c | 8+++++---
2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/changes/bug22779 b/changes/bug22779 @@ -0,0 +1,4 @@ + o Minor features (client, entry guards): + - Add an extra check to make sure that we always use the + new guard selection code for picking our guards. Closes + ticket 22779. diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c @@ -2358,9 +2358,6 @@ choose_good_middle_server(uint8_t purpose, * router (if we're an OR), and respect firewall settings; if we're * configured to use entry guards, return one. * - * If <b>state</b> is NULL, we're choosing a router to serve as an entry - * guard, not for any particular circuit. - * * Set *<b>guard_state_out</b> to information about the guard that * we're selecting, which we'll use later to remember whether the * guard worked or not. @@ -2378,6 +2375,11 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state, CRN_DIRECT_CONN); const node_t *node; + /* Once we used this function to select a node to be a guard. We had + * 'state == NULL' be the signal for that. But we don't do that any more. + */ + tor_assert_nonfatal(state); + if (state && options->UseEntryGuards && (purpose != CIRCUIT_PURPOSE_TESTING || options->BridgeRelay)) { /* This request is for an entry server to use for a regular circuit,