<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr/src/lib.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-05T09:35:52Z</updated>
<entry>
<title>config derive attrs: Make builders serde, and validated structs not</title>
<updated>2022-05-05T09:35:52Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-05-04T16:45:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d47e94b45993162fece0d1bdfa4d3da0407a4861'/>
<id>urn:sha1:d47e94b45993162fece0d1bdfa4d3da0407a4861</id>
<content type='text'>
 * Builders additionally derive: Debug, Serialize, Deserialize.

 * Validated structs no longer derive: Serialize, Deserialize
   and all related attributes deleted.

 * As a consequence, all the `#[serde(deny_unknown_fields)]`
   are gone.  That means that right now unknown fields are totally
   ignored.  This is good for compatibility but poor for useability.
   Doing something better here is arti#417, in progress.

 * As a consequence, delete tor_dirmgr::retry::default_parallelism.
   (The default value was already duplicated into a builder attr.)
</content>
</entry>
<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>squash! Bump every crate's edition to 2021.</title>
<updated>2022-04-25T17:06:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-25T16:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f6bc6bdc431fa36de70a167eea777dcf3f60bf2'/>
<id>urn:sha1:2f6bc6bdc431fa36de70a167eea777dcf3f60bf2</id>
<content type='text'>
Remove all `use` statements for `TryFrom` and `TryInto`.  These are
now redundant in Rust 2021.
</content>
</entry>
<entry>
<title>fix typo in doc</title>
<updated>2022-04-24T22:27:29Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2022-04-24T22:27:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b9dd23de91bba8866052579b1d974691201cb075'/>
<id>urn:sha1:b9dd23de91bba8866052579b1d974691201cb075</id>
<content type='text'>
</content>
</entry>
<entry>
<title>GuardMgr: publish skew estimates.</title>
<updated>2022-04-12T12:03:49Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-11T19:13:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5f5cbdc08e6c6e1f10245acb2b2b556eb6a43756'/>
<id>urn:sha1:5f5cbdc08e6c6e1f10245acb2b2b556eb6a43756</id>
<content type='text'>
Instead of just having a function that recalculates the latest clock
skew, instead recalculate the clock skew when it may have changed,
and notify other processes via a postage::watch.
</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 note_external_{success,failure}.</title>
<updated>2022-04-05T14:01:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-05T14:01:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3b32e635cdcff7a1a78aef5af4e707a82e02af26'/>
<id>urn:sha1:3b32e635cdcff7a1a78aef5af4e707a82e02af26</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>
</feed>
