From dbdd2eaa2a00ab9144c118b975fe5ec5e9e57312 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Wed, 3 Mar 2004 07:24:53 +0000 Subject: [PATCH] don't mark_for_close again when the destroy arrives after the end cell svn:r1211 --- src/or/connection_edge.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 5855b34695..38aedb385f 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -92,6 +92,8 @@ int connection_edge_process_inbuf(connection_t *conn) { int connection_edge_destroy(uint16_t circ_id, connection_t *conn) { assert(conn->type == CONN_TYPE_AP || conn->type == CONN_TYPE_EXIT); + if(conn->marked_for_close) + return 0; /* already marked; probably got an 'end' */ 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 */