<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-dirmgr/src/lib.rs, 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-03-30T14:41:39Z</updated>
<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>Move fallback.rs into guardmgr.</title>
<updated>2022-03-30T14:34:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T17:38:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=80b65c3a4d4108c6b4b0cb91722f89c8e5859b7d'/>
<id>urn:sha1:80b65c3a4d4108c6b4b0cb91722f89c8e5859b7d</id>
<content type='text'>
This is the logical place for it, I think: the GuardMgr's job is to
pick the first hop for a circuit depending on remembered status for
possible first hops.  Making this change will let us streamline the
code that interacts with these objects.
</content>
</entry>
<entry>
<title>Make daemon tasks self-contained; introduce NetDirProvider</title>
<updated>2022-03-30T13:26:43Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-03-28T12:54:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ac64bdea2744c6cd0ede0562954efcfe479afd94'/>
<id>urn:sha1:ac64bdea2744c6cd0ede0562954efcfe479afd94</id>
<content type='text'>
The various background daemon tasks that `arti-client` used to spawn are
now handled inside their respective crates instead, with functions
provided to spawn them that return `TaskHandle`s.

This required introducing a new trait, `NetDirProvider`, which steals
some functionality from the `DirProvider` trait to enable `tor-circmgr`
to depend on it (`tor-circmgr` is a dependency of `tor-dirmgr`, so it
can't depend on `DirProvider` directly).

While we're at it, we also make some of the tasks wait for events from
the `NetDirProvider` instead of sleeping, slightly increasing
efficiency.
</content>
</entry>
<entry>
<title>Merge branch 'no-system-time' into 'main'</title>
<updated>2022-03-30T12:44:25Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-03-30T12:44:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fd081742fa13e8464ad46123d83617165587d4f4'/>
<id>urn:sha1:fd081742fa13e8464ad46123d83617165587d4f4</id>
<content type='text'>
Don't use SystemTime::now()

Closes #306

See merge request tpo/core/arti!365</content>
</entry>
<entry>
<title>Abolish filter::DynFilter in favour of transparent DirFilter</title>
<updated>2022-03-25T13:08:56Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-03-25T13:08:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=678504d9f90e1a281a8987cbd52fb0547364b623'/>
<id>urn:sha1:678504d9f90e1a281a8987cbd52fb0547364b623</id>
<content type='text'>
There are two reasons why the DynFilter newtype might be needed:

1. To impl Default.  But we don't need it to impl Default since we can
have an accessor which does the defaulting.

2. To hide the API.  But this is usrely an unstable API.

Just writing Arc&lt;dyn&gt; gets rid of a lot of unnecessary boilerplate and
conversion code.
</content>
</entry>
<entry>
<title>dirmgr: Initial DirFilter code.</title>
<updated>2022-03-24T16:10:46Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-21T17:33:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c0399fc6c12d35d8cf70d6b59eee70b93a608d57'/>
<id>urn:sha1:c0399fc6c12d35d8cf70d6b59eee70b93a608d57</id>
<content type='text'>
This code sits behind a feature flag, and can be used to modify
directories before storing them.  This is part of the implementation
for #397.
</content>
</entry>
<entry>
<title>Expand some comments based on review from @diziet.</title>
<updated>2022-03-21T19:16:00Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-21T19:16:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ee204328dde5987fa99622e4f3d2c49e4557d09c'/>
<id>urn:sha1:ee204328dde5987fa99622e4f3d2c49e4557d09c</id>
<content type='text'>
</content>
</entry>
</feed>
