aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/circuit.c')
-rw-r--r--src/or/circuit.c7
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);