Browse Source

Merge branch 'bug22779_031'

Nick Mathewson 6 years ago
parent
commit
f4f828640f
2 changed files with 9 additions and 3 deletions
  1. 4 0
      changes/bug22779
  2. 5 3
      src/or/circuitbuild.c

+ 4 - 0
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.

+ 5 - 3
src/or/circuitbuild.c

@@ -2468,9 +2468,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.
@@ -2488,6 +2485,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,