diff --git a/src/or/connection.c b/src/or/connection.c index 134836c447..43e8339ac2 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -737,6 +737,10 @@ int connection_send_destroy(uint16_t circ_id, connection_t *conn) { if(!connection_speaks_cells(conn)) { log_fn(LOG_INFO,"CircID %d: At an edge. Marking connection for close.", circ_id); + conn->has_sent_end = 1; /* we're closing the circuit, nothing to send to */ +/* XXX really, we should separate this function into two functions. + * one of them actually sends the destroy cell, as this function's name + * implies, and another one destroys a stream. Yes/no? -RD */ connection_mark_for_close(conn, END_STREAM_REASON_DESTROY); return 0; }