Browse Source

Check for intro circ timeouts properly

Previously, we would treat an intro circuit failure as a timeout iff the
circuit failed due to a mismatch in relay identity keys.  (Due to a bug
elsewhere, we only recognize relay identity-key mismatches on the first
hop, so this isn't as bad as it could have been.)

Bugfix on commit eaed37d14c6e1dc93a392f62ef2e501f75e4878a, not yet in any
release.
Robert Ransom 14 years ago
parent
commit
b095be7f69
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/or/circuitlist.c

+ 2 - 2
src/or/circuitlist.c

@@ -1192,7 +1192,7 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line,
   }
   }
   if (circ->purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) {
   if (circ->purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) {
     origin_circuit_t *ocirc = TO_ORIGIN_CIRCUIT(circ);
     origin_circuit_t *ocirc = TO_ORIGIN_CIRCUIT(circ);
-    int timed_out = (reason == END_STREAM_REASON_TIMEOUT);
+    int timed_out = (reason == END_CIRC_REASON_TIMEOUT);
     tor_assert(circ->state == CIRCUIT_STATE_OPEN);
     tor_assert(circ->state == CIRCUIT_STATE_OPEN);
     tor_assert(ocirc->build_state->chosen_exit);
     tor_assert(ocirc->build_state->chosen_exit);
     tor_assert(ocirc->rend_data);
     tor_assert(ocirc->rend_data);
@@ -1207,7 +1207,7 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line,
                                            INTRO_POINT_FAILURE_TIMEOUT :
                                            INTRO_POINT_FAILURE_TIMEOUT :
                                            INTRO_POINT_FAILURE_GENERIC);
                                            INTRO_POINT_FAILURE_GENERIC);
   } else if (circ->purpose == CIRCUIT_PURPOSE_C_INTRODUCING &&
   } else if (circ->purpose == CIRCUIT_PURPOSE_C_INTRODUCING &&
-             reason != END_STREAM_REASON_TIMEOUT) {
+             reason != END_CIRC_REASON_TIMEOUT) {
     origin_circuit_t *ocirc = TO_ORIGIN_CIRCUIT(circ);
     origin_circuit_t *ocirc = TO_ORIGIN_CIRCUIT(circ);
     tor_assert(ocirc->build_state->chosen_exit);
     tor_assert(ocirc->build_state->chosen_exit);
     tor_assert(ocirc->rend_data);
     tor_assert(ocirc->rend_data);