Commit 09ef2b7e authored by Roger Dingledine's avatar Roger Dingledine
Browse files

cleanup so connection_ap_handshake_attach_chosen_circuit() always

gets open circs.


svn:r3856
parent 13fdf51b
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -991,9 +991,7 @@ connection_ap_handshake_attach_chosen_circuit(connection_t *conn,
             conn->state == AP_CONN_STATE_CONTROLLER_WAIT);
  tor_assert(conn->socks_request);
  tor_assert(circ);

  if (circ->state != CIRCUIT_STATE_OPEN)
    return 0;
  tor_assert(circ->state == CIRCUIT_STATE_OPEN);

  conn->state = AP_CONN_STATE_CIRCUIT_WAIT;

+4 −0
Original line number Diff line number Diff line
@@ -745,6 +745,10 @@ static int handle_control_attachstream(connection_t *conn, uint32_t len,
    send_control_error(conn, ERR_NO_CIRC, "No circuit found with given ID");
    return 0;
  }
  if (circ->state != CIRCUIT_STATE_OPEN) {
    send_control_error(conn, ERR_INTERNAL, "Refuse to attach stream to non-open circ.");
    return 0;
  }
  if (connection_ap_handshake_attach_chosen_circuit(ap_conn, circ) != 1) {
    send_control_error(conn, ERR_INTERNAL, "Unable to attach stream.");
    return 0;