Commit 48e0228f authored by Roger Dingledine's avatar Roger Dingledine
Browse files

expire old CIRCUIT_PURPOSE_C_REND_READY circs too


svn:r1585
parent 4e1b65f5
Loading
Loading
Loading
Loading
+8 −3
Changes for src/or/circuit.c: 8 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -452,11 +452,16 @@ void circuit_expire_building(void) {
    if(victim->timestamp_created + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now)
      continue; /* it's young still, don't mess with it */

    /* if circ is !open, or if it's open but purpose is est intro or est rend,
     * then mark it for close */
    /* if circ is !open, or if it's open but purpose is a non-finished
     * intro or rend, then mark it for close */
    if(victim->state != CIRCUIT_STATE_OPEN ||
       victim->purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND ||
       victim->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO) {
       victim->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO ||
       /* c_rend_ready circs measure age since timestamp_dirty,
        * because that's set when they switch purposes
        */
       (victim->purpose == CIRCUIT_PURPOSE_C_REND_READY &&
        victim->timestamp_dirty + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now)) {
      if(victim->n_conn)
        log_fn(LOG_INFO,"Abandoning circ %s:%d:%d (state %d:%s)",
               victim->n_conn->address, victim->n_port, victim->n_circ_id,
+1 −1
Changes for src/or/main.c: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -364,7 +364,7 @@ static void run_scheduled_events(time_t now) {
  }

  /* 2. Every second, we examine pending circuits and prune the
   *    ones which have been pending for more than 3 seconds.
   *    ones which have been pending for more than a few seconds.
   *    We do this before step 3, so it can try building more if
   *    it's not comfortable with the number of available circuits.
   */