<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr/src/guard.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:40Z</updated>
<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>
<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>GuardMgr:: generalize GuardId::from_relay.</title>
<updated>2022-03-21T14:27:53Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-21T14:24:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8306a9cdcf15ae81d9067282c1aff460f8c767d0'/>
<id>urn:sha1:8306a9cdcf15ae81d9067282c1aff460f8c767d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>GuardMgr: revise handling of "all guards are down".</title>
<updated>2022-03-21T13:06:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-16T18:07:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eed1f06662366511fe5fd15ac0ab0cb69497f2cf'/>
<id>urn:sha1:eed1f06662366511fe5fd15ac0ab0cb69497f2cf</id>
<content type='text'>
When all guards are down, we would previously mark them all as up,
and retry aggressively.  But that's far too aggressive: if there's
something wrong with our ability to connect to guards, it makes us
hammer the network over and over, ignoring all the guard retry
timeouts in practice.

Instead,
  * We now allow the `pick_guard()` function to fail without
    automatically retrying.
  * We give different errors in the cases when all our guards are
    down, and when all of the guards selected by our active usage
    are down.
  * Our "guards are down" error includes the time at which a guard
    will next be retriable.

This is part of #407.
</content>
</entry>
<entry>
<title>GuardMgr: use decorrelated-jitter backoff for retrying guards.</title>
<updated>2022-03-21T13:06:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-16T16:58:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cb103e04cf4d985333a6949f0fd646258dcedcd2'/>
<id>urn:sha1:cb103e04cf4d985333a6949f0fd646258dcedcd2</id>
<content type='text'>
C tor used one schedule, and guard-spec specified another.  But in
reality we should probably use a randomized schedule to retry
guards, for the reasons explained in the documentation for
RetrySchedule.

I've chosen the minima to be not too far from our previous minima
for primary and non-primary guards.

This is part of #407.
</content>
</entry>
<entry>
<title>Replace manual Default impls with educe in tor-guardmgr</title>
<updated>2022-03-02T18:06:37Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-03-02T17:48:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=daa44df22155136d934de860c826068494936072'/>
<id>urn:sha1:daa44df22155136d934de860c826068494936072</id>
<content type='text'>
</content>
</entry>
<entry>
<title>use wallclock where possible in tests</title>
<updated>2022-02-25T23:33:44Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2022-02-25T23:33:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f06b25601006ba42c427349837dca6d5634bc718'/>
<id>urn:sha1:f06b25601006ba42c427349837dca6d5634bc718</id>
<content type='text'>
</content>
</entry>
</feed>
