aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2010-09-29 17:17:59 -0400
committerRoger Dingledine <arma@torproject.org>2010-09-29 17:17:59 -0400
commit48cd096276590e40540bc255b2610931351b14cb (patch)
tree31653a7ee4bdc1ec46328afe73e7738f7eee0302 /src/or/circuituse.c
parent474e4d2722d52cf225a88cb7b7c677273b8f50ac (diff)
parent4caf39f1c8db6acc25f84df024073d43c04c8645 (diff)
downloadtor-48cd096276590e40540bc255b2610931351b14cb.tar
tor-48cd096276590e40540bc255b2610931351b14cb.tar.gz
Merge commit 'mikeperry/bug1739' into maint-0.2.2
Diffstat (limited to 'src/or/circuituse.c')
-rw-r--r--src/or/circuituse.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index 36dc1c164..1fbe5a82b 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -389,6 +389,9 @@ circuit_expire_building(time_t now)
/* Circuits are allowed to last longer for measurement.
* Switch their purpose and wait. */
if (victim->purpose != CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT) {
+ control_event_circuit_status(TO_ORIGIN_CIRCUIT(victim),
+ CIRC_EVENT_FAILED,
+ END_CIRC_REASON_TIMEOUT);
victim->purpose = CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT;
/* Record this failure to check for too many timeouts
* in a row. This function does not record a time value yet
@@ -430,7 +433,10 @@ circuit_expire_building(time_t now)
circuit_state_to_string(victim->state), victim->purpose);
circuit_log_path(LOG_INFO,LD_CIRC,TO_ORIGIN_CIRCUIT(victim));
- circuit_mark_for_close(victim, END_CIRC_REASON_TIMEOUT);
+ if (victim->purpose == CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT)
+ circuit_mark_for_close(victim, END_CIRC_REASON_MEASUREMENT_EXPIRED);
+ else
+ circuit_mark_for_close(victim, END_CIRC_REASON_TIMEOUT);
}
}