소스 검색

Use the normal four-hop CBT for client intro circuits

Fixes another part of bug 1297.
Robert Ransom 13 년 전
부모
커밋
8fc02a8e0c
2개의 변경된 파일8개의 추가작업 그리고 11개의 파일을 삭제
  1. 8 0
      changes/bug1297a
  2. 0 11
      src/or/circuituse.c

+ 8 - 0
changes/bug1297a

@@ -5,4 +5,12 @@
       creation; it was supposed to be applied based on time since the
       circuit entered its current state.  Bugfix on 0.0.6; fixes part
       of bug 1297.
+    - Use the same circuit timeout for client-side introduction
+      circuits as for other four-hop circuits.  Previously,
+      client-side introduction circuits were closed after the same
+      timeout as single-hop directory-fetch circuits; this was
+      appropriate with the static circuit build timeout in 0.2.1.x and
+      earlier, but caused many hidden service access attempts to fail
+      with the adaptive CBT introduced in 0.2.2.2-alpha.  Bugfix on
+      0.2.2.2-alpha; fixes another part of bug 1297.
 

+ 0 - 11
src/or/circuituse.c

@@ -288,7 +288,6 @@ circuit_expire_building(void)
   struct timeval general_cutoff, begindir_cutoff, fourhop_cutoff,
     cannibalize_cutoff, close_cutoff, extremely_old_cutoff;
   struct timeval now;
-  struct timeval introcirc_cutoff;
   cpath_build_state_t *build_state;
 
   tor_gettimeofday(&now);
@@ -307,8 +306,6 @@ circuit_expire_building(void)
   SET_CUTOFF(close_cutoff, circ_times.close_ms);
   SET_CUTOFF(extremely_old_cutoff, circ_times.close_ms*2 + 1000);
 
-  introcirc_cutoff = begindir_cutoff;
-
   while (next_circ) {
     struct timeval cutoff;
     victim = next_circ;
@@ -325,8 +322,6 @@ circuit_expire_building(void)
       cutoff = fourhop_cutoff;
     else if (TO_ORIGIN_CIRCUIT(victim)->has_opened)
       cutoff = cannibalize_cutoff;
-    else if (victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCING)
-      cutoff = introcirc_cutoff;
     else if (victim->purpose == CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT)
       cutoff = close_cutoff;
     else
@@ -337,12 +332,6 @@ circuit_expire_building(void)
 
 #if 0
     /* some debug logs, to help track bugs */
-    if (victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCING &&
-        victim->timestamp_created <= introcirc_cutoff &&
-        victim->timestamp_created > general_cutoff)
-      log_info(LD_REND|LD_CIRC, "Timing out introduction circuit which we "
-               "would not have done if it had been a general circuit.");
-
     if (victim->purpose >= CIRCUIT_PURPOSE_C_INTRODUCING &&
         victim->purpose <= CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) {
       if (!victim->timestamp_dirty)