<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/tunnel/reactor.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-28T11:03:27Z</updated>
<entry>
<title>tor-proto: Replace TOOD(conflux) with TODO(#1999).</title>
<updated>2025-05-28T11:03:27Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-28T10:06:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=533de3888b6223f4b5c0802270eea4faab591ba8'/>
<id>urn:sha1:533de3888b6223f4b5c0802270eea4faab591ba8</id>
<content type='text'>
We can tackle this later, after we finish addressing all the remaining
`TODO(conflux)`.
</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>proto: temporarily suppress warning; see #2003.</title>
<updated>2025-05-16T01:38:25Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-05-16T01:38:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ac4522fb4d90004918fa473bbdaa9708c6ab1879'/>
<id>urn:sha1:ac4522fb4d90004918fa473bbdaa9708c6ab1879</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Add TODO about possibly replacing LegIdKey with UniqId.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-12T17:49:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9709d44d4167cd67446381d43187780fbab91755'/>
<id>urn:sha1:9709d44d4167cd67446381d43187780fbab91755</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Rework MutableState to work with multi-path circuits.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-09T09:59:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=52be0de8c054f279b64a4cffdf1e23b63429d7a6'/>
<id>urn:sha1:52be0de8c054f279b64a4cffdf1e23b63429d7a6</id>
<content type='text'>
We now have a new `TunnelSharedState` type for storing the shared state
of a tunnel. It consists of the `MutableState`s of all the circuits in
the tunnel, which are shared between it and `Circuit` (the circuit
subcomponent of the reactor). The `TunnelSharedState` itself is shared
between `ConfluxSet` (which manages the `Circuits`), and `ClientCirc`
(the reactor handle used to access information about circuits, such as
their `Path`).
</content>
</entry>
<entry>
<title>tor-proto: Add From&lt;LegIdKey&gt; impl for LegId.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-08T16:02:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d645899685a388b57ba1bf83b740ce2c9d31a70'/>
<id>urn:sha1:2d645899685a388b57ba1bf83b740ce2c9d31a70</id>
<content type='text'>
This will simplify some callsites.
</content>
</entry>
<entry>
<title>tor-proto: Encapsulate MutableState operations inside impl.</title>
<updated>2025-05-15T16:33:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-09T15:33:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=42c097c5bd24b6f51cd3da6cd2b46154e48c60e4'/>
<id>urn:sha1:42c097c5bd24b6f51cd3da6cd2b46154e48c60e4</id>
<content type='text'>
Not locking the `MutableState` mutex outside of this impl makes it
easier to see it's currently impossible deadlock.
</content>
</entry>
<entry>
<title>tor-proto: Rename MutableState to CircuitState.</title>
<updated>2025-05-15T16:33:29Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-05-09T15:13:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8ef5bc02d3144fec1c6716239353032d981fd973'/>
<id>urn:sha1:8ef5bc02d3144fec1c6716239353032d981fd973</id>
<content type='text'>
This renaming is in preparation for the addition of a newtype wrapper
for what used to be `Mutex&lt;MutableState&gt;`. That newtype wrapper will be
called `MutableState`.
</content>
</entry>
<entry>
<title>tor-proto: Document why RemoveLegReason exists.</title>
<updated>2025-05-06T12:12:14Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-04-24T17:12:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b18f34c994ca94507f6d6b42bf4adc65c6550089'/>
<id>urn:sha1:b18f34c994ca94507f6d6b42bf4adc65c6550089</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Move error binding under is_conflux_pending condition.</title>
<updated>2025-05-06T12:12:14Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-04-24T17:08:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d78ebdf5b5c32c7fd2c9ef4fa85233168d6a0bb4'/>
<id>urn:sha1:d78ebdf5b5c32c7fd2c9ef4fa85233168d6a0bb4</id>
<content type='text'>
We don't use it outside this branch, so might as well move it there.
</content>
</entry>
</feed>
