We used to do this as a workaround for older Tors, but now it's never
the correct thing to do (especially since anything that didn't
understand RELAY_EARLY is now deprecated hard).
--- /dev/null
+ - Feature removal:
+ - When sending or relaying a RELAY_EARLY cell, we used to convert
+ it to a RELAY cell if the connection was using the v1 link
+ protocol. This was a workaround for older versions of Tor, which
+ didn't handle RELAY_EARLY cells properly. Now that all supported
+ versions can handle RELAY_EARLY cells, and now that we're
+ enforcing the "no RELAY_EXTEND commands except in RELAY_EARLY
+ cells" rule, we're removing this workaround. Addresses bug 4786.
+
queue = &orcirc->p_conn_cells;
streams_blocked = circ->streams_blocked_on_p_conn;
}
- if (cell->command == CELL_RELAY_EARLY && orconn->link_proto < 2) {
- /* V1 connections don't understand RELAY_EARLY. */
- cell->command = CELL_RELAY;
- }
cell_queue_append_packed_copy(queue, cell);