Commit 0fc2b7f8 authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Merge branch 'bug8185_031' into maint-0.3.1

parents 2777b469 1a5746f8
Loading
Loading
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.
+11 −0
Original line number Diff line number Diff line
@@ -506,6 +506,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;
@@ -824,6 +829,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;
  }

#ifdef MEASUREMENTS_21206
  /* Keep track of the number of RELAY_DATA cells sent for directory
   * connections. */