Commit a24b9e6a authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

r11694@catbus: nickm | 2007-02-07 13:25:01 -0500

 Fix patch for 9510: never call control_event_stream_status on an exit connection. Should fix assert() noticed by xiando.


svn:r9514
parent ae443380
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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;
+3 −2
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ 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;
      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));