<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/tunnel/circuit.rs, branch arti-v1.4.4</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.4</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.4'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-05-28T12:54:58Z</updated>
<entry>
<title>tor-proto: Make Path::all_hops() return an iterator.</title>
<updated>2025-05-28T12:54:58Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-28T11:00:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2bc95fa72634b98c9cc6ee15206a6c24932f096c'/>
<id>urn:sha1:2bc95fa72634b98c9cc6ee15206a6c24932f096c</id>
<content type='text'>
This addresses one of the TODOs from `reactor::conflux`.
</content>
</entry>
<entry>
<title>Merge branch 'extend_ntor-fix' into 'main'</title>
<updated>2025-05-21T13:48:50Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-05-21T13:48:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=71b1b87bc9cad3fb6670aefba5cd54fbe3b888a0'/>
<id>urn:sha1:71b1b87bc9cad3fb6670aefba5cd54fbe3b888a0</id>
<content type='text'>
tor-proto: Prevent sink and rx from being dropped in-place.

Closes #2005

See merge request tpo/core/arti!3005</content>
</entry>
<entry>
<title>tor-proto: Add TODO about multipath rend circuits.</title>
<updated>2025-05-20T14:33:57Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-19T14:26:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=45b93f57a3f547f2f51fa4c1082542a78b30361e'/>
<id>urn:sha1:45b93f57a3f547f2f51fa4c1082542a78b30361e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Clarify that we need HopLocation, not TargetHop.</title>
<updated>2025-05-20T14:33:53Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-19T14:09:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4d7b78991d85b8896af4a5c251f9530888e44066'/>
<id>urn:sha1:4d7b78991d85b8896af4a5c251f9530888e44066</id>
<content type='text'>
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3002#note_3200935
</content>
</entry>
<entry>
<title>Revert "tor-proto: add a non-pub `ClientCirc::legs()` method"</title>
<updated>2025-05-20T14:33:45Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-14T15:41:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e3256fb46820f88e1ad10cf99fffb2baaa7345ae'/>
<id>urn:sha1:e3256fb46820f88e1ad10cf99fffb2baaa7345ae</id>
<content type='text'>
This reverts commit c2d9ea952b4dcb91d05ee754e8d1a6ec6a0689b2.

`QueryLegs` is now unused. We also decided we won't need it for
implementing `Tunnel::path_ref()` as we are keeping the
`MutableState` between `ClientCirc` and the reactor (see !2996).
</content>
</entry>
<entry>
<title>tor-proto: Remove multi-path check from allow_stream_requests().</title>
<updated>2025-05-20T14:30:25Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-14T15:36:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a9d8484205a19222c3f4754d4adad01b3fcb3a49'/>
<id>urn:sha1:a9d8484205a19222c3f4754d4adad01b3fcb3a49</id>
<content type='text'>
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 `ClientCirc`s 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`.
</content>
</entry>
<entry>
<title>tor-proto: Prevent sink and rx from being dropped in-place.</title>
<updated>2025-05-20T14:04:25Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-20T13:57:21Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=98b03fcfe8f13c2e9a1f5c3587b35c5f64020214'/>
<id>urn:sha1:98b03fcfe8f13c2e9a1f5c3587b35c5f64020214</id>
<content type='text'>
This was supposed to be fixed in 164d6b4d6c5, but that change failed to
bind `sink` and `rx in `futures::join!`, causing `sink` and `rx` to get
dropped, which would, in turn, cause the channel and circuit reactors to
shut down, sometimes leading to intermittent failures (#2005).

Closes #2005
</content>
</entry>
<entry>
<title>tor-proto: Make TunnelMutableState docs link to MutableState.</title>
<updated>2025-05-15T16:33:34Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-13T12:58:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fd0e8b1af8f40db436b5c05a2e6ca237ae2f3c8b'/>
<id>urn:sha1:fd0e8b1af8f40db436b5c05a2e6ca237ae2f3c8b</id>
<content type='text'>
These `TunnelMutableState` impls just delegate to `MutableState`, so we
might as well link to the corresponding docs.
</content>
</entry>
<entry>
<title>tor-proto: Add note about raciness of last_hop_num.</title>
<updated>2025-05-15T16:33:34Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-13T12:54:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=25c48e752bdda4eccb32afc0f4e9645d7412fe81'/>
<id>urn:sha1:25c48e752bdda4eccb32afc0f4e9645d7412fe81</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Remove the CircuitSharedState type alias.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-12T17:34:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7c1d7fef7ddce3a9c2dc9f4452542377adc9fe63'/>
<id>urn:sha1:7c1d7fef7ddce3a9c2dc9f4452542377adc9fe63</id>
<content type='text'>
Hiding the underlying type makes the code less readable.
</content>
</entry>
</feed>
