|
@@ -339,6 +339,10 @@ relay_send_end_cell_from_edge(streamid_t stream_id, circuit_t *circ,
|
|
|
|
|
|
payload[0] = (char) reason;
|
|
|
|
|
|
+ /* Note: we have to use relay_send_command_from_edge here, not
|
|
|
+ * connection_edge_end or connection_edge_send_command, since those require
|
|
|
+ * that we have a stream connected to a circuit, and we don't connect to a
|
|
|
+ * circuit until we have a pending/successful resolve. */
|
|
|
return relay_send_command_from_edge(stream_id, circ, RELAY_COMMAND_END,
|
|
|
payload, 1, cpath_layer);
|
|
|
}
|
|
@@ -3405,11 +3409,6 @@ connection_exit_begin_conn(cell_t *cell, circuit_t *circ)
|
|
|
if (rh.length > RELAY_PAYLOAD_SIZE)
|
|
|
return -END_CIRC_REASON_TORPROTOCOL;
|
|
|
|
|
|
- /* Note: we have to use relay_send_command_from_edge here, not
|
|
|
- * connection_edge_end or connection_edge_send_command, since those require
|
|
|
- * that we have a stream connected to a circuit, and we don't connect to a
|
|
|
- * circuit until we have a pending/successful resolve. */
|
|
|
-
|
|
|
if (!server_mode(options) &&
|
|
|
circ->purpose != CIRCUIT_PURPOSE_S_REND_JOINED) {
|
|
|
log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
|