<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr/src/guard.rs, branch arti-v0.3.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.3.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.3.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-05-04T15:16:38Z</updated>
<entry>
<title>GuardUsage: restrictions: Use list builder</title>
<updated>2022-05-04T15:16:38Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-04-26T15:34:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=015db3d78d04969971d7254b1a839c5693cb2720'/>
<id>urn:sha1:015db3d78d04969971d7254b1a839c5693cb2720</id>
<content type='text'>
Although these do not appear in the config, it does have a builder.
It seems sensible to get rid of this ad-hoc list manipulation site,
and replace it with our standard list builder API.

define_list_builder_helper requires that the builder element type be
Deserialize.  Currently GuardUsageRestriction is a transparent, public
enum, so we aren't really exposing anything.

We could introduce GuardUsageRestrictionBuilder now, but
since it's not in the config and thereofore only in the public API of
the lower crates, we can definitely put that off.
</content>
</entry>
<entry>
<title>Initial functions to determine and expose a clock skew estimate.</title>
<updated>2022-04-07T20:01:46Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-07T16:16:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eedee51899eb3365a21c37be3803846373265284'/>
<id>urn:sha1:eedee51899eb3365a21c37be3803846373265284</id>
<content type='text'>
(This is just a placeholder; I'm going to make the functions
smarter in the next commit.)
</content>
</entry>
<entry>
<title>GuardMgr: record clock skew information.</title>
<updated>2022-04-07T15:33:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-07T15:30:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=99146da2c2654c01259b8219bd491c5d4ac47039'/>
<id>urn:sha1:99146da2c2654c01259b8219bd491c5d4ac47039</id>
<content type='text'>
(It is not yet actually used.)
</content>
</entry>
<entry>
<title>GuardMgr: Tests for copy_status_from.</title>
<updated>2022-04-05T14:36:29Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-05T14:36:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fe43f0ddb5463e5f1a9c780924d1002de3958045'/>
<id>urn:sha1:fe43f0ddb5463e5f1a9c780924d1002de3958045</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rewrite and fix Guard::copy_status_from.</title>
<updated>2022-04-05T13:37:44Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-05T13:37:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3ba9b47000103ac9ab3f2d5d8f75e51059b70f01'/>
<id>urn:sha1:3ba9b47000103ac9ab3f2d5d8f75e51059b70f01</id>
<content type='text'>
The old version of this function was error-prone, and in fact had
errors: it was too easy to forget to add non-persistent fields, and
that's exactly what we forgot in a few cases
(`microdescriptor_missing`, `circ_history`, and
`suspicious_behavior_warned`).

The new version of this function consumes both of the incoming
Guards, and constructs every field explicitly so that we can't
forget to list any.

Closes #429.
</content>
</entry>
<entry>
<title>GuardMgr: Track directory status and circuit status separately.</title>
<updated>2022-04-05T13:18:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-04T19:41:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b3e06b93b6a34922cd8d07f13aa8f265ae7e8af3'/>
<id>urn:sha1:b3e06b93b6a34922cd8d07f13aa8f265ae7e8af3</id>
<content type='text'>
Previously, we treated successfully building a circuit to a guard as
a "success", and any failure, including a directory cache failure,
as a failure.  With this change, guards now have separate
success/failure and retry status for circuit usage and directory
usage.

This change is needed for guard-as-directory retry to have
reasonable behavior.  Otherwise, when a guard succeeds at building a
circuit, that clears the directory-is-failing status and makes us
retry the guards to quickly.
</content>
</entry>
<entry>
<title>Fix some Rustdoc links.</title>
<updated>2022-03-30T14:41:40Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-29T15:17:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3e92d30e4999f0cd50afd3359c73abfdbaf61d8a'/>
<id>urn:sha1:3e92d30e4999f0cd50afd3359c73abfdbaf61d8a</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>Remove allow(clippy::disallowed_methods) lint.</title>
<updated>2022-03-30T12:55:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-30T12:55:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=700e491813f84d76446193aef7121a329b774717'/>
<id>urn:sha1:700e491813f84d76446193aef7121a329b774717</id>
<content type='text'>
</content>
</entry>
</feed>
