Skip to content

tor-proto: Remove multi-path check from allow_stream_requests().

Previously, ClientCirc:allow_stream_requests() would return an error when called on a multi-path tunnel.

My main reason for removing the conflux set length check is because it enables us to remove the QueryLegs control command (which is something we were planning on doing anyway).

Note that now that we've removed ClientCirc::legs(), there's no way for a multi-path ClientCirc to access its circuit legs, but that is fine, because it's currently impossible to build multi-path ClientCircs in arti anyway. This issue will be addressed in the fork, in the new ClientTunnel type that will be used for multi-path tunnels (a ClientCirc will only ever be single-path, so it won't need to have a legs() function at all).

I am also removing the TODO(conflux) that justifies the now-removed check, because it's outdated (nowadays the CellHandlers are shared between the tunnel reactor and its circuits). That said, we still don't support onion service conflux, but that will be tackled separately because there are a bunch of issues that still need to be resolved to make it work (which I'll document separately).

Note that I've also made some changes to pass the LegId of the circuit that received the incoming stream request to StreamReqInfo and StreamTarget. This is in preparation for supporting multipath onion service conflux, and because the HopLocation from StreamTarget needs a LegId.

cc @opara @dgoulet

Edited by gabi-250

Merge request reports

Loading