<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/relay/reactor.rs, branch arti-v1.9.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.9.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.9.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-12-10T16:04:26Z</updated>
<entry>
<title>proto: Relay circuit reactor now handles AnyChanMsg</title>
<updated>2025-12-10T16:04:26Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-12-08T19:35:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=252cff2fb8e40b37e28b4faff8abb47862fabb7c'/>
<id>urn:sha1:252cff2fb8e40b37e28b4faff8abb47862fabb7c</id>
<content type='text'>
Same as the client reactor, a message outside of our restricted set
leads to a reactor shutdown.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Move RelayCircChanMsg into relay module</title>
<updated>2025-12-10T16:03:12Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-12-08T18:22:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6a14dc2b478a41f7f2ee54b307a746c22ced233f'/>
<id>urn:sha1:6a14dc2b478a41f7f2ee54b307a746c22ced233f</id>
<content type='text'>
This follows the move of the client specific object.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Fix relay/hs-service feature gating (fmt)</title>
<updated>2025-12-08T17:40:08Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-12-08T17:40:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5020e1e2add42450252512f4eb628e95409cc7d4'/>
<id>urn:sha1:5020e1e2add42450252512f4eb628e95409cc7d4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Fix relay/hs-service feature gating</title>
<updated>2025-12-08T17:39:08Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-12-08T17:39:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f033030c559ec75e0a4a26b69a1e15ca66a7e0d7'/>
<id>urn:sha1:f033030c559ec75e0a4a26b69a1e15ca66a7e0d7</id>
<content type='text'>
Without this, `tor-proto` doesn't compile if you enable the `relay`
feature but not `hs-service`.
</content>
</entry>
<entry>
<title>proto: Move EXTEND handling to catch-all error</title>
<updated>2025-12-02T18:17:43Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-12-02T18:13:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d42895586a72e2e151065edb06d9a8f060b1173b'/>
<id>urn:sha1:d42895586a72e2e151065edb06d9a8f060b1173b</id>
<content type='text'>
Since EXTEND is not used anymore, it's fine to handle it in our
catch-all branch for unrecognized/unsupported cells.
</content>
</entry>
<entry>
<title>proto: Resolve some clippy warnings, remove allows</title>
<updated>2025-11-24T17:03:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-11-21T11:37:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8d536452d0597638afbca93f1c3fea7ccc3a8c31'/>
<id>urn:sha1:8d536452d0597638afbca93f1c3fea7ccc3a8c31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Update relay reactor documentation</title>
<updated>2025-11-24T17:03:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-11-20T17:37:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=75b714989e7179144e226182c807243bd382cb57'/>
<id>urn:sha1:75b714989e7179144e226182c807243bd382cb57</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Move a couple of stream-related constants to stream mod (fmt)</title>
<updated>2025-11-24T17:03:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-11-17T19:26:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=52ddffaf6cfbcf7243018d48ef96815f5cec4278'/>
<id>urn:sha1:52ddffaf6cfbcf7243018d48ef96815f5cec4278</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Move a couple of stream-related constants to stream mod</title>
<updated>2025-11-24T17:03:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-11-17T19:26:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b46dc590b816ecc0f4d4941bbf194433f49524d2'/>
<id>urn:sha1:b46dc590b816ecc0f4d4941bbf194433f49524d2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Start handling incoming stream requests</title>
<updated>2025-11-24T17:03:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-11-19T18:08:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d0171796d96e73d305a9271b90a8b3ded0d44cae'/>
<id>urn:sha1:d0171796d96e73d305a9271b90a8b3ded0d44cae</id>
<content type='text'>
The relay reactor is now able to handle incoming stream requests (i.e.
cells that open streams). It currently only supports DATA stream
requests (BEGIN); support for other stream types (BEGIN_DIR, RESOLVE)
will be added later.

`Reactor::new()` now returns the futures::Stream of Tor streams, alongside
the `Reactor` and `RelayCirc` handle. Whoever calls `Reactor::new()` is
responsible for passing the stream of streams over to the task that is
meant to handle it ("handle" in this case means either rejecting the
stream with a given `END` cell, or accepting it and forwarding the
connection between it and the corresponding application stream).

IMPORTANT: the above is a bit half-baked! Next on my TODO list is is to
iron out the details of how/where this will actually be handled.
I am also a bit unsure about the API here: I think it might've been
nicer to give the user the ability to obtain this `futures::Stream` from
`RelayCirc`, which is, after all, a handle to the reactor?
Also on my short-term TODO list is to figure out how conflux will affect
this API and usage.

And there is another wrinkle here: for incoming DATA stream requests,
the handler will need to produce a resulting `DataStream`, which is not
yet fully implementation-agnostic (it wraps a `ClientDataStreamCtrl`).
This too will be handled in a separate MR.
</content>
</entry>
</feed>
