<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto, 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-06-05T15:06:54Z</updated>
<entry>
<title>Bump all the unstable tor- and arti- crates to 0.19.</title>
<updated>2024-06-05T15:06:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-06-05T15:06:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7a11638841eeabd2b5ebfe307541926c29cbfe77'/>
<id>urn:sha1:7a11638841eeabd2b5ebfe307541926c29cbfe77</id>
<content type='text'>
The unstable crates are:
  - tor-error
  - tor-config
  - tor-units
  - tor-geoip
  - tor-rtcompat
  - tor-rtmock
  - tor-log-ratelim
  - tor-rpcbase
  - tor-memquota
  - tor-llcrypto
  - tor-protover
  - tor-bytes
  - tor-hscrypto
  - tor-socksproto
  - tor-checkable
  - tor-cert
  - tor-linkspec
  - tor-cell
  - tor-proto
  - tor-netdoc
  - tor-consdiff
  - tor-netdir
  - tor-relay-selection
  - tor-persist
  - tor-chanmgr
  - tor-ptmgr
  - tor-guardmgr
  - tor-circmgr
  - tor-dirclient
  - tor-dirmgr
  - tor-keymgr
  - tor-hsclient
  - tor-hsservice
  - tor-hsrproxy
  - arti-client
  - arti-rpcserver
  - arti-hyper
  - tor-basic-utils
  - tor-async-utils

Done using

```
for p in "${unstable[@]}"; do cargo set-version -p $p 0.19; done
```

where `unstable` contains the list above
</content>
</entry>
<entry>
<title>Merge branch 'poll-ready-unpin-bool' into 'main'</title>
<updated>2024-05-29T18:05:57Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-29T18:05:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5bbed90af7b9c5fc35da550089d99ad8cea49763'/>
<id>urn:sha1:5bbed90af7b9c5fc35da550089d99ad8cea49763</id>
<content type='text'>
Tidy up the ChannelSender::poll_ready inherent method

See merge request tpo/core/arti!2171</content>
</entry>
<entry>
<title>ChannelSender::poll_ready_unpin_bool: add otiose ext trait doc</title>
<updated>2024-05-29T12:49:33Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T12:49:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fc6f4f79d28d5d4b2ef409d269708327cd032c0a'/>
<id>urn:sha1:fc6f4f79d28d5d4b2ef409d269708327cd032c0a</id>
<content type='text'>
</content>
</entry>
<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: Add a test for closing streams.</title>
<updated>2024-05-29T11:28:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-28T20:29:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e358e5f84f2fc4d80f56b8be221c6c23a7eae709'/>
<id>urn:sha1:e358e5f84f2fc4d80f56b8be221c6c23a7eae709</id>
<content type='text'>
This test verifies that when we invoke the code to close a stream,
an END message is actually sent.

The test comes in two versions:

* `drop_stream` closes the stream by dropping it.  It currently
  passes on main.
* `close_stream` closes the stream by running `AsyncWriteExt::close`
  on the writer.  It is a regression test for #1368.  It currently
  fails on main.
</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>ChannelSender::poll_ready_unpin_bool: move to util</title>
<updated>2024-05-29T11:16:19Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T11:15:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=237eb7a53f8953b8b6697ff110e1aec686b19d50'/>
<id>urn:sha1:237eb7a53f8953b8b6697ff110e1aec686b19d50</id>
<content type='text'>
This is where it belongs.
</content>
</entry>
<entry>
<title>ChannelSender::poll_ready_unpin_bool: extension trait</title>
<updated>2024-05-29T11:16:15Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T11:15:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e0115adb172001a84867e98520341a0ad1b96628'/>
<id>urn:sha1:e0115adb172001a84867e98520341a0ad1b96628</id>
<content type='text'>
This makes this available for any Sink + Unpin.  Which we want because
we're about to wrap our ChannelSender in a Sink wrapper.

It's in the wrong place now; we'll move it in a moment.
</content>
</entry>
<entry>
<title>ChannelSender::poll_ready_unpin_bool: rename from poll_ready</title>
<updated>2024-05-29T11:15:53Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T10:00:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ca05a4dcb9979c6916cd1f0d7ccc74af433969e0'/>
<id>urn:sha1:ca05a4dcb9979c6916cd1f0d7ccc74af433969e0</id>
<content type='text'>
This would otherwise shadow the poll_ready method, which is
confusing.

Also this paves the way for making it available for any
Sink + Unpin.

Improve the docs somewhat to explain what this thing actually is.
</content>
</entry>
</feed>
