<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/stream/incoming.rs, branch arti-v1.1.13</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.13</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.13'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2023-12-14T16:56:58Z</updated>
<entry>
<title>Rename {Any}RelayCell to {Any}RelayMsgOuter</title>
<updated>2023-12-14T16:56:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-12-14T16:43:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8c0b166de3057e0ddb0d7771e50ad5a366bdd7c8'/>
<id>urn:sha1:8c0b166de3057e0ddb0d7771e50ad5a366bdd7c8</id>
<content type='text'>
This commit is pure renaming, done automatically with rust-analyzer.
Comment fixes and other cleanups will be in the subsequent commits.

We're doing this renaming because we need a name for
the combination of a `RelayMsg` and an `Option&lt;StreamId&gt;`
that we use when we have a `RelayMsg`
we intend to route to a given stream or circuit internally.
Previously we called this a `RelayCell`,
but that name was already somewhat inaccurate,
and will become _very_ inaccurate with the arrival of prop340,
which breaksthe 1:1 relationship between relay cells
and relay messages.

(If we didn't do this renaming now, we'd soon be making
the relationship between `UnparsedRelayCell`and `RelayCell`
many-to-many, which would be ridiculous and confusing.)

The `RelayMsgOuter` name is a placeholder:
We expect that we'll want to rename this type,
and may also want to rename `RelayMsg`,
and unify our vocabulary in other areas too.
But such a renaming will have to wait
for a larger discussion affecting the specifications,
so that we can use the same vocabulary everywhere.
</content>
</entry>
<entry>
<title>Convert StreamId to NonZeroU16</title>
<updated>2023-10-25T20:34:55Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2023-10-23T22:57:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=48d95b8be53177d34012c53dd84ed888ebfb5cc8'/>
<id>urn:sha1:48d95b8be53177d34012c53dd84ed888ebfb5cc8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Revise the behavior of IncomingStream::discard().</title>
<updated>2023-10-19T17:15:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-18T14:30:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1b2a4de2eb6a11157879cb53839eaee9e658ba4d'/>
<id>urn:sha1:1b2a4de2eb6a11157879cb53839eaee9e658ba4d</id>
<content type='text'>
Because dropping a `StreamTarget` causes the circuit reactor to send
an End, the previous do-nothing implementation of `discard()` wasn't
sufficient to cause the request to be ignored without sending an
End.

This commit modifies our "close pending stream" behavior to only
optionally send an End message.  To avoid confusion, I'm using a new
`CloseStreamBehavior` enum rather than an `Option&lt;End&gt;`, since we
had previously used `None` in some cases to indicate a default
(misc) end message.
</content>
</entry>
<entry>
<title>IncomingStream:: flatten IncomingStreamInner.</title>
<updated>2023-10-19T17:15:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-18T14:18:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d51927c7ad3d0523b533acaa467ac2a083854e0f'/>
<id>urn:sha1:d51927c7ad3d0523b533acaa467ac2a083854e0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>IncomingStream: Remove state.</title>
<updated>2023-10-19T17:15:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-18T14:16:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=394dda704d3832d7cb5f97f1f98c0bb6c903bf85'/>
<id>urn:sha1:394dda704d3832d7cb5f97f1f98c0bb6c903bf85</id>
<content type='text'>
Now that every state-change function consumes the IncomingStream,
there is no longer any reason to keep track of an internal state
enum.
</content>
</entry>
<entry>
<title>Note a bug in IncomingStream::discard.</title>
<updated>2023-10-19T17:15:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-18T14:14:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d67be6e8f51c9c4a6b9f814c3613e4c7ecc03d24'/>
<id>urn:sha1:d67be6e8f51c9c4a6b9f814c3613e4c7ecc03d24</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove IncomingStreamInner from its Option.</title>
<updated>2023-10-19T17:15:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-18T14:12:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0ae389d5b3a67c9dd6d802b06e1950533f7ed7e3'/>
<id>urn:sha1:0ae389d5b3a67c9dd6d802b06e1950533f7ed7e3</id>
<content type='text'>
Now that IncomingStream doesn't implement Drop, we can just
destructure it.
</content>
</entry>
<entry>
<title>Remove impl Drop from IncomingStream</title>
<updated>2023-10-19T17:15:10Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-18T14:07:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1e5a44f97b9cc067e0a99d95b7ae554661bd80f8'/>
<id>urn:sha1:1e5a44f97b9cc067e0a99d95b7ae554661bd80f8</id>
<content type='text'>
Since dropping a StreamTarget will send an End, we don't need
to call reject_internal in this case.
</content>
</entry>
<entry>
<title>proto: Make StreamTarget::close() misuse less likely.</title>
<updated>2023-10-17T12:41:44Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-17T12:39:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=308a27f0ac25c4608fd08d7c68fd1c5b305a8428'/>
<id>urn:sha1:308a27f0ac25c4608fd08d7c68fd1c5b305a8428</id>
<content type='text'>
It turns out that we can make `IncomingStream::reject()` consume
self, thus making it impossible to hit the double-close error
from outside the `tor-proto` crate.

Also, we rename `StreamTarget::close()` to `close_pending()` to
better reflect its limited applicability.
</content>
</entry>
<entry>
<title>proto::stream::incoming: Use bit-array representation for command list</title>
<updated>2023-10-12T16:23:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-10-12T13:56:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bffc68b2eafe323a4cb7fa130a93ff238f0a4b16'/>
<id>urn:sha1:bffc68b2eafe323a4cb7fa130a93ff238f0a4b16</id>
<content type='text'>
This should be smaller and faster than vec, and save some
allocations.  It could also avoid a tiny sidechannel.
</content>
</entry>
</feed>
