diff options
-rw-r--r-- | src/or/circuitlist.c | 4 | ||||
-rw-r--r-- | src/or/connection_edge.c | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 93784a485d..f5651d0970 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -948,14 +948,12 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line, conn = or_circ->resolving_streams; or_circ->resolving_streams = conn->next_stream; if (!conn->_base.marked_for_close) { - /* The other side will see a DESTROY, and infer that the connections + /* The client will see a DESTROY, and infer that the connections * are closing because the circuit is getting torn down. No need * to send an end cell. */ conn->_base.edge_has_sent_end = 1; conn->end_reason = END_STREAM_REASON_DESTROY; conn->end_reason |= END_STREAM_REASON_FLAG_ALREADY_SENT_CLOSED; - control_event_stream_status(conn, STREAM_EVENT_CLOSED, - END_STREAM_REASON_DESTROY); connection_mark_for_close(TO_CONN(conn)); } conn->on_circuit = NULL; diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 53639dfdf9..b40425c3f8 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -159,8 +159,9 @@ connection_edge_destroy(uint16_t circ_id, edge_connection_t *conn) conn->_base.edge_has_sent_end = 1; conn->end_reason = END_STREAM_REASON_DESTROY; conn->end_reason |= END_STREAM_REASON_FLAG_ALREADY_SENT_CLOSED; - control_event_stream_status(conn, STREAM_EVENT_CLOSED, - END_STREAM_REASON_DESTROY); + if (conn->_base.type == CONN_TYPE_AP) + control_event_stream_status(conn, STREAM_EVENT_CLOSED, + END_STREAM_REASON_DESTROY); connection_mark_for_close(TO_CONN(conn)); conn->_base.hold_open_until_flushed = 1; } |