<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-dirmgr, branch arti-v0.2.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.2.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.2.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-04-01T13:15:18Z</updated>
<entry>
<title>Bump all arti*, tor* crates to 0.2.0</title>
<updated>2022-04-01T13:15:18Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-01T13:15:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5b2fc118df0524144e6b2c34fdcce3d0fb692d24'/>
<id>urn:sha1:5b2fc118df0524144e6b2c34fdcce3d0fb692d24</id>
<content type='text'>
Not all of these strictly need to be bumped to 0.2.0; many could go
to 0.1.1 instead.  But since everything at the tor-rtcompat and
higher layers has had breaking API changes, it seems not so useful
to distinguish.  (It seems unlikely that anybody at this stage is
depending on e.g. tor-protover but not arti-client.)
</content>
</entry>
<entry>
<title>dirmgr: Use a different idiom in retry loop</title>
<updated>2022-03-31T12:07:50Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-31T12:07:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c5e5fc155396c121f512572057ff73e1d0d97122'/>
<id>urn:sha1:c5e5fc155396c121f512572057ff73e1d0d97122</id>
<content type='text'>
Replace the next delay field immediately rather than taking it and
_then_ setting it.  This way, it's never in an incorrect state.
</content>
</entry>
<entry>
<title>dirmgr: fix bugs in algorithm for retrying downloads</title>
<updated>2022-03-30T17:56:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-30T17:56:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6e8c982ab5dabf67fffecf99a53755e1488ee404'/>
<id>urn:sha1:6e8c982ab5dabf67fffecf99a53755e1488ee404</id>
<content type='text'>
The previous algorithm had two flaws:

  * It would wait even after the final attempt, when there were no
    more retries to do.
  * It would fail to wait between attempts if an error occurred.

This refactoring fixes both of these issues, and adds some comments.
</content>
</entry>
<entry>
<title>Reformat several Cargo.toml files with 100-char-wide lines.</title>
<updated>2022-03-30T14:41:40Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-29T17:39:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1feb7eecacf0718f46a36175b75ffdcc152b340c'/>
<id>urn:sha1:1feb7eecacf0718f46a36175b75ffdcc152b340c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor FirstHopId into type-differentiated form</title>
<updated>2022-03-30T14:41:39Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-29T14:55:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6282df34fb00c3b8b686553e05f8d3172b017ed0'/>
<id>urn:sha1:6282df34fb00c3b8b686553e05f8d3172b017ed0</id>
<content type='text'>
The FirstHopId type now records an enum that stores whether the hop
is a guard or a fallback.  This change addresses concerns about
remembering to check the type or source of an Id before passing it
down to the FallbackState or GuardSet.

Making this change required an API change, so that dirmgr can
report success/failure status without actually knowing whether it's
using a fallback or a guard.
</content>
</entry>
<entry>
<title>Rename Guard=&gt;FirstHop, GuardId=&gt;FirstHopId</title>
<updated>2022-03-30T14:40:59Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-29T13:05:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=13af6134f6180f7241daca9206fa49ed5f26829d'/>
<id>urn:sha1:13af6134f6180f7241daca9206fa49ed5f26829d</id>
<content type='text'>
This is preparation for having separate GuardId and FirstHopId types
that distinguish which back-end they index.
</content>
</entry>
<entry>
<title>Rename ExternalFailure =&gt; ExternalActivity.</title>
<updated>2022-03-30T14:40:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-26T00:32:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bdd129f23094b58b738c87d4655783004fac2274'/>
<id>urn:sha1:bdd129f23094b58b738c87d4655783004fac2274</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add status tracking to FallbackDir.</title>
<updated>2022-03-30T14:39:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T23:19:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bfb2353a8f627b189e104e606b3284fdfaa6d98b'/>
<id>urn:sha1:bfb2353a8f627b189e104e606b3284fdfaa6d98b</id>
<content type='text'>
We do this by creating a new FallbackSet type that includes status
information, and updating the GuardMgr APIs to record success and
failure about it when appropriate.  We can use this to mark
FallbackDirs retriable (or not).

With this change, FallbackDir is now stored internally as a Guard in
the GuardMgr crate.  That's fine: the FallbackDir type really only
matters for configuration.
</content>
</entry>
<entry>
<title>dirmgr: do not pass fallbacks to the CircMgr.</title>
<updated>2022-03-30T14:39:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T21:00:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e48f4f3a93a04562423e3ad4955d4586de28acd4'/>
<id>urn:sha1:e48f4f3a93a04562423e3ad4955d4586de28acd4</id>
<content type='text'>
This is the final step in allowing the CircMgr to use the GuardMgr's
view of the fallbacks.

Compilation is restored and tests pass.
</content>
</entry>
<entry>
<title>Turn FallbackList into a real type, and store one in GuardMgr.</title>
<updated>2022-03-30T14:39:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T20:44:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9da43189f36b19681d10b78ef982c52c929b4573'/>
<id>urn:sha1:9da43189f36b19681d10b78ef982c52c929b4573</id>
<content type='text'>
The guard manager is responsible for handing out the first hops of
tor circuits, keeping track of their successes and failures, and
remembering their states.  Given that, it makes sense to store this
information here.  It is not yet used; I'll be fixing that in
upcoming commits.

Arguably, this information no longer belongs in the directory
manager: I've added a todo about moving it.

This commit will break compilation on its own in a couple of places;
subsequent commits will fix it up.
</content>
</entry>
</feed>
