<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/circuit/reactor.rs, branch arti-v1.2.2</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.2</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.2'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-04-25T15:24:24Z</updated>
<entry>
<title>Circuit reactor: document some requirements and assumptions</title>
<updated>2024-04-25T15:24:24Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-04-16T19:10:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=14f0ee82d1f8ffbbbead3e72340d2c98f05a73fc'/>
<id>urn:sha1:14f0ee82d1f8ffbbbead3e72340d2c98f05a73fc</id>
<content type='text'>
There are some tricky bits here that implicitly assume particular
behavior in other bits for correctness. Document these requirements and
assumptions.

Fixes arti#1373
</content>
</entry>
<entry>
<title>Make filter conditional, to fix build with hs-service disabled.</title>
<updated>2024-03-26T16:55:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-26T13:13:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0f39aadd7e40bc8502d0fddd066ccc3a9f00163e'/>
<id>urn:sha1:0f39aadd7e40bc8502d0fddd066ccc3a9f00163e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor and simplify ClientCircSyncView</title>
<updated>2024-03-26T16:55:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-26T13:05:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3f997375bbe65599f46d85be7104a5868b304455'/>
<id>urn:sha1:3f997375bbe65599f46d85be7104a5868b304455</id>
<content type='text'>
With this patch, it holds only a reference to `&amp;reactor.hops`,
which greatly simplifies the reactor code's fight with the
borrow checker.

I've left some TODO comments about future directions here.
</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>Define a type for a synchronous (blocking) view of a circuit state.</title>
<updated>2024-03-26T16:55:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-20T14:48:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d8a1c0af0e656643f7066ef0c8079c50aa982ad3'/>
<id>urn:sha1:d8a1c0af0e656643f7066ef0c8079c50aa982ad3</id>
<content type='text'>
We'll use this as an argument for the callback that checks stream
requests to make sure they're permitted.
</content>
</entry>
<entry>
<title>proto: Prevent general state-transitions on StreamEnt</title>
<updated>2024-03-26T16:54:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-20T14:28:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=62d749c1eb7730eeb025885c7d7f86a0ac8c333a'/>
<id>urn:sha1:62d749c1eb7730eeb025885c7d7f86a0ac8c333a</id>
<content type='text'>
We want to keep an accurate count of the number of open streams, so
we have to stop exposing `&amp;mut StreamEnt` outside of the streammap
module.
</content>
</entry>
<entry>
<title>proto: Refactor circuit::streammap::StreamEnt</title>
<updated>2024-03-26T16:54:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-20T14:16:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3ccc523b89d5ed37e76d8c2be43872d9127b8596'/>
<id>urn:sha1:3ccc523b89d5ed37e76d8c2be43872d9127b8596</id>
<content type='text'>
This is the first part of a refactoring that will let us keep code
from the outside of `streammap` from changing a stream from one
state to another.  And we need to do _that_ so that StreamMap can
count how many open streams it has.
</content>
</entry>
<entry>
<title>Refactor the logic for constructing crypt layers.</title>
<updated>2024-03-26T15:43:43Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-20T18:00:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9be8d835556f8d703a88693dd11888b41b851791'/>
<id>urn:sha1:9be8d835556f8d703a88693dd11888b41b851791</id>
<content type='text'>
The key insights here are:
 - That relay cell format and crypto protocols aren't orthogonal:
   Once we have GCO, it will require V1.
 - That we only need the actual functions for layer construction to
   be generic; we don't need to proliferate generic parameters
   everywhere.
 - That the circuit::handshake module already does most of what we
   want.
</content>
</entry>
<entry>
<title>Add and use RelayCellFormatTrait</title>
<updated>2024-03-20T14:10:32Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-03-19T00:30:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8a91f277bbb9faa263a33d6b270f652a0da98068'/>
<id>urn:sha1:8a91f277bbb9faa263a33d6b270f652a0da98068</id>
<content type='text'>
This lets us paramaterize types and functions by a particular relay cell
format. We use this e.g. to statically parameterize the cell crypto
functions, thereby removing some run-time branching in the hot path.
</content>
</entry>
</feed>
