<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/build.rs, branch arti-v0.0.3</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-01-07T19:33:04Z</updated>
<entry>
<title>Merge branch 'remove-type-annotation' into 'main'</title>
<updated>2022-01-07T19:33:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-07T19:33:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c123138f7411e468aa874853e3b388328d92d420'/>
<id>urn:sha1:c123138f7411e468aa874853e3b388328d92d420</id>
<content type='text'>
tor-circmgr: Remove a type annotation in a method call

See merge request tpo/core/arti!225</content>
</entry>
<entry>
<title>tor-circmgr: Remove a type annotation in a method call</title>
<updated>2022-01-07T18:12:27Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-01-07T17:24:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5469579ca986859bea37ad7830d24b0ac1747824'/>
<id>urn:sha1:5469579ca986859bea37ad7830d24b0ac1747824</id>
<content type='text'>
This is a method, so the resolution is automatic.  It's not clear to
me why this was written out this way, given that extend_ntor is right
above.

Signed-off-by: Ian Jackson &lt;ijackson@chiark.greenend.org.uk&gt;
</content>
</entry>
<entry>
<title>De-Arc-ify Buildable for ClientCirc</title>
<updated>2022-01-06T20:22:49Z</updated>
<author>
<name>Neel Chauhan</name>
<email>neel@neelc.org</email>
</author>
<published>2022-01-06T20:22:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5dfedb4c6f7c0788b9fc0a525bae54e9896d2542'/>
<id>urn:sha1:5dfedb4c6f7c0788b9fc0a525bae54e9896d2542</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'main' into 'remove_unused_rngs'</title>
<updated>2022-01-06T15:48:42Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-01-06T15:48:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f08854bc690b005df9e192a89f4f791956f425dc'/>
<id>urn:sha1:f08854bc690b005df9e192a89f4f791956f425dc</id>
<content type='text'>
# Conflicts:
#   crates/tor-circmgr/src/build.rs</content>
</entry>
<entry>
<title>Remove a bunch of unused RNGs</title>
<updated>2021-12-26T02:44:55Z</updated>
<author>
<name>Neel Chauhan</name>
<email>neel@neelc.org</email>
</author>
<published>2021-12-26T02:43:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d72d37ff4ac984ac243a760c6eb1e6d5e130c6af'/>
<id>urn:sha1:d72d37ff4ac984ac243a760c6eb1e6d5e130c6af</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-circmgr: Don't clone parameters in create_chantarget()</title>
<updated>2021-12-26T01:22:38Z</updated>
<author>
<name>Neel Chauhan</name>
<email>neel@neelc.org</email>
</author>
<published>2021-12-26T01:22:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=383843f0d7d7c0b1f9b75c115fb4bf4a09496dfa'/>
<id>urn:sha1:383843f0d7d7c0b1f9b75c115fb4bf4a09496dfa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow on-the-fly changing of path_rules</title>
<updated>2021-12-07T20:42:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-12-07T18:37:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=11210124dac0405b12d31f4f0a82b8d1d5a34f44'/>
<id>urn:sha1:11210124dac0405b12d31f4f0a82b8d1d5a34f44</id>
<content type='text'>
And now the complexity begins: when the user changes the path_rules,
they not only want new circuits to obey those rules: they want
_all new requests_ to be put onto circuits that obey those rules.

That means that when the path rules become more restrictive, we need
to retire all the circuits, and make sure that currently pending
circuits aren't used for any requests.

If it's any comfort, doing this was even more complicated in C tor. ;)
</content>
</entry>
<entry>
<title>Sketch API for reconfiguration.</title>
<updated>2021-12-07T20:42:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-12-06T18:54:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=606d64eac5936a9f0bfec32b8b5a85f3dea77559'/>
<id>urn:sha1:606d64eac5936a9f0bfec32b8b5a85f3dea77559</id>
<content type='text'>
This patch doesn't actually make anything reconfigurable, but it
does create an API that will tell you "you can't change the value of
that!"  If the API looks reasonable, I can start making it possible
to change the values of individual items.
</content>
</entry>
<entry>
<title>add semicolons if nothing returned</title>
<updated>2021-11-25T13:20:37Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-11-25T13:14:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=db16d13df4779ac61005050dfe5ce05e3d5a1b5d'/>
<id>urn:sha1:db16d13df4779ac61005050dfe5ce05e3d5a1b5d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Completely overhaul the tor-proto circuit reactor</title>
<updated>2021-11-12T15:04:24Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-11-09T14:05:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=197816d14cfb24c8830b938dac7dc3afb6eb6c26'/>
<id>urn:sha1:197816d14cfb24c8830b938dac7dc3afb6eb6c26</id>
<content type='text'>
Rather like e8e9699c3c239d6c30f9ad414f15d3bad6ec03fd ("Get rid of
tor-proto's ChannelImpl, and use the reactor more instead"), this
admittedly rather large commit refactors the way circuits in `tor-proto`
work, centralising all of the logic in one large nonblocking reactor
which other things send messages into and out of, instead of having a
bunch of `-Impl` types that are protected by mutexes.

Congestion control becomes a lot simpler with this refactor, since the
reactor can manage both stream- and circuit-level congestion control
unilaterally without having to share this information with consumers,
meaning we can get rid of some locks.

The way streams work also changes, in order to facilitate better
handling of backpressure / fairness between streams: each stream now has
a set of channels to send and receive messages over, instead of sending
relay cells directly onto the channel (now, the reactor pulls messages
off each stream in each map, and tries to avoid doing so if it won't be
able to forward them yet).

Additionally, a lot of "close this circuit / stream" messages aren't
required any more, since that state is simply indicated by one end of a
channel going away. This should make cleanup a lot less brittle.

Getting all of this to work involved writing a fair deal of intricate
nonblocking code in Reactor::run_once that tries very hard to be mindful
of making backpressure work correctly (and congestion control); the old
code could get away with having tasks .await on things, but the new
reactor can't really do this (as it'd lock the reactor up), so has to do
everything in a nonblocking manner.
</content>
</entry>
</feed>
