diff options
author | Roger Dingledine <arma@torproject.org> | 2004-04-18 07:37:16 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2004-04-18 07:37:16 +0000 |
commit | 3fa2925a6a6402390dcecf778f7b83494a3b0e13 (patch) | |
tree | 7ae6681f0a64ad3f9fd832628b2ce6b69debc2f6 /src/or/circuit.c | |
parent | 8d86f8abf59cf758f38a59d589ff662e15020b4f (diff) | |
download | tor-3fa2925a6a6402390dcecf778f7b83494a3b0e13.tar tor-3fa2925a6a6402390dcecf778f7b83494a3b0e13.tar.gz |
if an intro circ waiting for an ack dies before getting one, then
count it as a nack
svn:r1665
Diffstat (limited to 'src/or/circuit.c')
-rw-r--r-- | src/or/circuit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/or/circuit.c b/src/or/circuit.c index 16fc8bb6e..eafead450 100644 --- a/src/or/circuit.c +++ b/src/or/circuit.c @@ -997,6 +997,13 @@ int _circuit_mark_for_close(circuit_t *circ) { circuit_build_failed(circ); /* take actions if necessary */ circuit_rep_hist_note_result(circ); } + if (circ->purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT) { + assert(circ->state == CIRCUIT_STATE_OPEN); + /* treat this like getting a nack from it */ + log_fn(LOG_INFO,"Failed intro circ %s to %s (awaiting ack). Removing from descriptor.", + circ->rend_query, circ->build_state->chosen_exit); + rend_client_remove_intro_point(circ->build_state->chosen_exit, circ->rend_query); + } if(circ->n_conn) connection_send_destroy(circ->n_circ_id, circ->n_conn); |