Clean up choose_good_entry_server() doc; add assertion

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

Fixes bug 22779.
This commit is contained in:
Nick Mathewson 2017-07-31 20:35:58 -04:00
parent 2cb8c8d99f
commit df3bdc6bde
2 changed files with 9 additions and 3 deletions

4
changes/bug22779 Normal file
View File

@ -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.

View File

@ -2358,9 +2358,6 @@ choose_good_middle_server(uint8_t purpose,
* router (if we're an OR), and respect firewall settings; if we're * router (if we're an OR), and respect firewall settings; if we're
* configured to use entry guards, return one. * 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 * Set *<b>guard_state_out</b> to information about the guard that
* we're selecting, which we'll use later to remember whether the * we're selecting, which we'll use later to remember whether the
* guard worked or not. * guard worked or not.
@ -2378,6 +2375,11 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state,
CRN_DIRECT_CONN); CRN_DIRECT_CONN);
const node_t *node; 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 && if (state && options->UseEntryGuards &&
(purpose != CIRCUIT_PURPOSE_TESTING || options->BridgeRelay)) { (purpose != CIRCUIT_PURPOSE_TESTING || options->BridgeRelay)) {
/* This request is for an entry server to use for a regular circuit, /* This request is for an entry server to use for a regular circuit,