<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/tunnel/reactor, branch arti-v1.4.6</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.6</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.6'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-07-25T13:10:30Z</updated>
<entry>
<title>proto: Remove element_idx + remove in favor of remove_unchecked().</title>
<updated>2025-07-25T13:10:30Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-25T11:47:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f2bc6d3d61da7e3681282a40e50f59c7662b773'/>
<id>urn:sha1:2f2bc6d3d61da7e3681282a40e50f59c7662b773</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Replace hand-rolled exactly_one() impl with itertools.</title>
<updated>2025-07-25T13:10:30Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-25T11:03:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=00bb06283948a0695e0f628ce4e7cb363589d383'/>
<id>urn:sha1:00bb06283948a0695e0f628ce4e7cb363589d383</id>
<content type='text'>
This slightly reduces the amount of code we need to maintain.

This also drive-by fixes a bug in `ConfluxSet::take_single_leg`, which
previously never actually checked if the conflux set was of size one.
</content>
</entry>
<entry>
<title>proto: Add a ConfluxSet::remove_unchecked method.</title>
<updated>2025-07-25T11:39:51Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-07-25T11:23:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d8f430977e59063e50c8943bdfde2aa288d24266'/>
<id>urn:sha1:d8f430977e59063e50c8943bdfde2aa288d24266</id>
<content type='text'>
This method will enable us to remove some duplicated code, as well as
the `element_idx` function.
</content>
</entry>
<entry>
<title>Downgrade an XXXX to a TODO.</title>
<updated>2025-07-23T14:59:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-07-15T12:57:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=47bf0a8c4328f540160c146261b95f34e7866133'/>
<id>urn:sha1:47bf0a8c4328f540160c146261b95f34e7866133</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor/simplify HopSettings construction</title>
<updated>2025-07-23T14:59:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-07-14T19:39:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=67ac990a205847e797b000ee474bec3522cd1c2e'/>
<id>urn:sha1:67ac990a205847e797b000ee474bec3522cd1c2e</id>
<content type='text'>
We now take an enum describing whether we are doing no negotiation,
HsV3 negotiation, or full negotiation.  This lets us do away with
the notions of default relay crypto, and of declaring post-facto
that no negotiation has occurred.
</content>
</entry>
<entry>
<title>proto: Send extensions as appropriate to negotiate CGO.</title>
<updated>2025-07-23T14:59:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-06-11T12:19:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3591c05e34336a210fcae8cb4c69e149c3f88e42'/>
<id>urn:sha1:3591c05e34336a210fcae8cb4c69e149c3f88e42</id>
<content type='text'>
Let's see if it works!
</content>
</entry>
<entry>
<title>proto: Take format+crypto settings from HopSettings</title>
<updated>2025-07-23T14:58:47Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-06-10T23:55:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=87b5c7ed464a75c19d7943cc31936146bbb0dace'/>
<id>urn:sha1:87b5c7ed464a75c19d7943cc31936146bbb0dace</id>
<content type='text'>
Since these will be negotiated (or determined as part of negotiation)
they belong in HopSettings.
</content>
</entry>
<entry>
<title>tor-proto: add the `XonXoffReader` and connect it to the reactor</title>
<updated>2025-07-17T18:01:47Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-07-17T05:47:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ac0a34306105bb003573a854c64eedc9cefac51e'/>
<id>urn:sha1:ac0a34306105bb003573a854c64eedc9cefac51e</id>
<content type='text'>
The idea here is that the reactor builds an `XonXoffReaderCtrl` for the
new stream, and the `XonXoffReaderCtrl` can receive notifications from
the reactor's `StreamFlowControl`. The `XonXoffReaderCtrl` can be
combined with any `AsyncRead` to build a `XonXoffReader`, essentially
wrapping the `AsyncRead` with a type that handles XON/XOFF flow control.
Essentially, the reactor gives you a type that allows you to add
XON/XOFF flow control support to any `AsyncRead`.

We will add this `XonXoffReader` to the `DataReader` in a future commit.
</content>
</entry>
<entry>
<title>tor-proto: add plumbing for sending XON</title>
<updated>2025-07-17T18:01:47Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-07-16T19:48:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4bcfcc3cae31f901e828369383e4660778eaa8c6'/>
<id>urn:sha1:4bcfcc3cae31f901e828369383e4660778eaa8c6</id>
<content type='text'>
Nothing actually causes an XON to be sent yet. But this adds the code so
that anything holding the `StreamTarget` can request to send an XON.
</content>
</entry>
<entry>
<title>tor-proto: send XOFF messages when the queue grows too large</title>
<updated>2025-07-16T17:36:43Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-07-15T04:59:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=be5da87e8530a34a88db2a01b42a03431a9df8db'/>
<id>urn:sha1:be5da87e8530a34a88db2a01b42a03431a9df8db</id>
<content type='text'>
</content>
</entry>
</feed>
