Never queue a cell on a marked circuit

This commit is contained in:
Nick Mathewson
2010-09-15 13:06:54 -04:00
parent 4e3373f7fe
commit 87f18c9578
2 changed files with 5 additions and 0 deletions
+2
View File
@@ -4,4 +4,6 @@
it may have been possible for a few queued cells to get relayed,
even though they would have been immediately dropped by the next
OR in the circuit. Fix 1184; bugfix on 0.2.0.1-alpha.
- Never queue a cell for a circuit that's already been marked
for close.
+3
View File
@@ -2272,6 +2272,9 @@ append_cell_to_circuit_queue(circuit_t *circ, or_connection_t *orconn,
{
cell_queue_t *queue;
int streams_blocked;
if (circ->marked_for_close)
return;
if (direction == CELL_DIRECTION_OUT) {
queue = &circ->n_conn_cells;
streams_blocked = circ->streams_blocked_on_n_conn;