<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/stream, branch arti-v1.2.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.2.4</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.4'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-05-29T11:28:05Z</updated>
<entry>
<title>proto: Try to clarify why StreamReader has a StreamTarget.</title>
<updated>2024-05-29T11:28:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-28T20:42:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b077b68e6dc9d426beebd84bd63382287c03b02f'/>
<id>urn:sha1:b077b68e6dc9d426beebd84bd63382287c03b02f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Improve documentation about DataStream lifetimes and closing</title>
<updated>2024-05-29T11:28:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-28T16:52:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=99dcd037aa81863da56180900e8b6f0aeb143f2d'/>
<id>urn:sha1:99dcd037aa81863da56180900e8b6f0aeb143f2d</id>
<content type='text'>
In particular, clarify that dropping the DataWriter on its own does
nothing unless the DataReader is also dropped.

Related to #1368.
</content>
</entry>
<entry>
<title>proto: Make DataWriter::close actually do something.</title>
<updated>2024-05-29T11:28:01Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-28T16:30:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6739f33781b957da7cb00128ba2eadc92dbabf72'/>
<id>urn:sha1:6739f33781b957da7cb00128ba2eadc92dbabf72</id>
<content type='text'>
Previously we had a bug where `&lt;DataWriter as AsyncWrite&gt;::close`
(or `shutdown` in tokio-land) would not actually have any effect.
It _would_ drop the `StreamTarget` held by the `DataWriter`, but
since the `DataReader` also held a `StreamTarget`, the
MPSC channel would not get closed, and the circuit reactor would
not realize that the stream wanted to shut down.

Now we use `mpsc::Sender::close_channel` to make our closes
effectual.

Closes #1368.

Additionally, we fix a bug where `poll_close()` never actually did
anything if the buffer had nothing in it when it was called.
Previously, `poll_flush_impl()` would exit immediately if it had no
data to flush.  That isn't what we want when we are closing!
</content>
</entry>
<entry>
<title>proto: Explicitly enforce maxima on SENDME windows.</title>
<updated>2024-05-14T14:36:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T14:36:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9ffbc63e97487263a8be6550952d01094e4b026d'/>
<id>urn:sha1:9ffbc63e97487263a8be6550952d01094e4b026d</id>
<content type='text'>
No actual bug here, just technical debt:

For `SendWindow`s, our tag system already ensured that we rejected
any SENDME that didn't correspond to an appropriate drain.  Still,
it doesn't hurt to check.

For `RecvWindow`s, it would have been a protocol violation if we
ever did this, but it makes sense to make it an internal error if we
try.

Part of #1383.
</content>
</entry>
<entry>
<title>proto: Fix compilation with stream-ctrl but not experimental-api.</title>
<updated>2024-05-14T12:04:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-12T19:53:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e7d474345fe99a8c9203f90d70b5a5b236086be3'/>
<id>urn:sha1:e7d474345fe99a8c9203f90d70b5a5b236086be3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Expose wait_for_connection as a part of the DataStream API.</title>
<updated>2024-05-09T20:34:17Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-06T19:05:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=489aa72d1eee8a5638493dfb23d06823a201c132'/>
<id>urn:sha1:489aa72d1eee8a5638493dfb23d06823a201c132</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename the old IncomingStreamRequestContext to StreamReqInfo.</title>
<updated>2024-03-26T16:55:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-26T12:51:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=500f7c562d0b28f3047fc5cee7cce34ee077517c'/>
<id>urn:sha1:500f7c562d0b28f3047fc5cee7cce34ee077517c</id>
<content type='text'>
(Doing this to prevent us having two structs with the same name.)
</content>
</entry>
<entry>
<title>Add an IncomingStreamRequestFilter to check early properties</title>
<updated>2024-03-26T16:55:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-20T15:39:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=25da33c91ccbd3ac266edf871925ee6a341d4729'/>
<id>urn:sha1:25da33c91ccbd3ac266edf871925ee6a341d4729</id>
<content type='text'>
Based on designs in #1124.

Note that there is a TODO here about a hack I had to do to appease
the borrow checker.
</content>
</entry>
<entry>
<title>Run maint/add_warning.</title>
<updated>2024-03-13T16:30:53Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-13T16:30:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c0c9bd15d42897825dd0ab3d3b8dd1c17bd6320c'/>
<id>urn:sha1:c0c9bd15d42897825dd0ab3d3b8dd1c17bd6320c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>relay-cell: Update relay cell decoding API for prop340</title>
<updated>2024-03-12T15:58:12Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-03-05T20:58:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d427eb93d699e779c608f71a243d581b1027a73'/>
<id>urn:sha1:2d427eb93d699e779c608f71a243d581b1027a73</id>
<content type='text'>
Prop 340:
https://spec.torproject.org/proposals/340-packed-and-fragmented.html

This updates the decoding API to support multiple versions of the relay
cell encoding, including the new encoding proposed in prop340 that
supports relay message packing and fragmentation.

This commit doesn't actually add support for that new encoding yet.
</content>
</entry>
</feed>
