Loading changes/bug8185_025 0 → 100644 +6 −0 Original line number Diff line number Diff line o Minor bugfixes (logging, relay shutdown, annoyance): - When a circuit is marked for close, do not attempt to package any cells for channels on that circuit. Previously, we would detect this condition lower in the call stack, when we noticed that the circuit had no attached channel, and log an annoying message. Fixes bug 8185; bugfix on 0.2.5.4-alpha. src/or/relay.c +11 −0 Original line number Diff line number Diff line Loading @@ -383,6 +383,11 @@ circuit_package_relay_cell(cell_t *cell, circuit_t *circ, { channel_t *chan; /* where to send the cell */ if (circ->marked_for_close) { /* Circuit is marked; send nothing. */ return 0; } if (cell_direction == CELL_DIRECTION_OUT) { crypt_path_t *thishop; /* counter for repeated crypts */ chan = circ->n_chan; Loading Loading @@ -696,6 +701,12 @@ connection_edge_send_command(edge_connection_t *fromconn, return -1; } if (circ->marked_for_close) { /* The circuit has been marked, but not freed yet. When it's freed, it * will mark this connection for close. */ return -1; } return relay_send_command_from_edge(fromconn->stream_id, circ, relay_command, payload, payload_len, cpath_layer); Loading Loading
changes/bug8185_025 0 → 100644 +6 −0 Original line number Diff line number Diff line o Minor bugfixes (logging, relay shutdown, annoyance): - When a circuit is marked for close, do not attempt to package any cells for channels on that circuit. Previously, we would detect this condition lower in the call stack, when we noticed that the circuit had no attached channel, and log an annoying message. Fixes bug 8185; bugfix on 0.2.5.4-alpha.
src/or/relay.c +11 −0 Original line number Diff line number Diff line Loading @@ -383,6 +383,11 @@ circuit_package_relay_cell(cell_t *cell, circuit_t *circ, { channel_t *chan; /* where to send the cell */ if (circ->marked_for_close) { /* Circuit is marked; send nothing. */ return 0; } if (cell_direction == CELL_DIRECTION_OUT) { crypt_path_t *thishop; /* counter for repeated crypts */ chan = circ->n_chan; Loading Loading @@ -696,6 +701,12 @@ connection_edge_send_command(edge_connection_t *fromconn, return -1; } if (circ->marked_for_close) { /* The circuit has been marked, but not freed yet. When it's freed, it * will mark this connection for close. */ return -1; } return relay_send_command_from_edge(fromconn->stream_id, circ, relay_command, payload, payload_len, cpath_layer); Loading