From 98ae4bbd0fba7dc6ef3e56ccbbafaf76175be227 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 29 Mar 2007 02:32:00 +0000 Subject: [PATCH] Comment out the "clear queue when sending a destroy" logic: it seems potentially dangerous. (see comment for details) svn:r9913 --- src/or/connection_or.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/or/connection_or.c b/src/or/connection_or.c index fb2cca71ad..7a3c6f2918 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -792,7 +792,6 @@ int connection_or_send_destroy(uint16_t circ_id, or_connection_t *conn, int reason) { cell_t cell; - circuit_t *circ; tor_assert(conn); @@ -802,10 +801,14 @@ connection_or_send_destroy(uint16_t circ_id, or_connection_t *conn, int reason) cell.payload[0] = (uint8_t) reason; log_debug(LD_OR,"Sending destroy (circID %d).", circ_id); +#if 0 + /* XXXX020 Actually, don't kill the cell queue: it may have data that we're + * waiting to flush. We need to do something more sensible here. */ /* Clear the cell queue on the circuit, so that our destroy cell will * be the very next thing written.*/ circ = circuit_get_by_circid_orconn(circ_id, conn); circuit_clear_cell_queue(circ, conn); +#endif connection_or_write_cell_to_buf(&cell, conn); return 0;