]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Check for intro circ timeouts properly
authorRobert Ransom <rransom.8774@gmail.com>
Wed, 12 Oct 2011 13:41:33 +0000 (06:41 -0700)
committerRobert Ransom <rransom.8774@gmail.com>
Wed, 12 Oct 2011 13:41:33 +0000 (06:41 -0700)
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.

src/or/circuitlist.c

index b25a71e6bde9cb82078e3f8d49bfe10d72839227..ef884f3a7584acb40cb9de7100390176268e5fc7 100644 (file)
@@ -1192,7 +1192,7 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line,
   }
   if (circ->purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) {
     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(ocirc->build_state->chosen_exit);
     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_GENERIC);
   } 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);
     tor_assert(ocirc->build_state->chosen_exit);
     tor_assert(ocirc->rend_data);