<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr/src/sample.rs, branch arti-v0.0.3</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-01-06T20:58:36Z</updated>
<entry>
<title>Tests for new guardmgr functionality.</title>
<updated>2022-01-06T20:58:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-06T20:11:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=723894b9eaa271e82006316f237e8978663a451f'/>
<id>urn:sha1:723894b9eaa271e82006316f237e8978663a451f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add API to check if primary MDs are missing.</title>
<updated>2022-01-06T20:58:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-06T15:23:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5ac0fcb7ef603e0d145a619ee148ce1262aa31f8'/>
<id>urn:sha1:5ac0fcb7ef603e0d145a619ee148ce1262aa31f8</id>
<content type='text'>
We need this information to know if it's okay to migrate to a new
NetDir, or if we need to download more information first.

Part of #178.
</content>
</entry>
<entry>
<title>Make TlsConnector wrap TCP connections, not create its own</title>
<updated>2021-12-07T17:00:40Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-12-02T11:44:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b14c5f370eef0a4fc1d2504ce54de1a921472567'/>
<id>urn:sha1:b14c5f370eef0a4fc1d2504ce54de1a921472567</id>
<content type='text'>
`tor-rtcompat`'s `TlsConnector` trait previously included a method to
create a TLS-over-TCP connection, which implied creating a TCP stream
inside that method. This commit changes that, and makes the function
wrap a TCP stream, as returned from the runtime's `TcpProvider` trait
implementation, instead.

This means you can actually override `TcpProvider` and have it apply to
*all* connections Arti makes, which is useful for issues like arti#235
and other cases where you want to have a custom TCP stream
implementation.

This required updating the mock TCP/TLS types in `tor-rtmock` slightly;
due to the change in API, we now store whether a `LocalStream` should
actually be a TLS stream inside the stream itself, and check this
property on reads/writes in order to detect misuse. The fake TLS wrapper
checks this property and removes it in order to "wrap" the stream,
making reads and writes work again.
</content>
</entry>
<entry>
<title>add semicolons if nothing returned</title>
<updated>2021-11-25T13:20:37Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-11-25T13:14:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=db16d13df4779ac61005050dfe5ce05e3d5a1b5d'/>
<id>urn:sha1:db16d13df4779ac61005050dfe5ce05e3d5a1b5d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>deglob some enums, use concise iteration syntax</title>
<updated>2021-11-25T12:39:52Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-11-25T12:39:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=052f51ff7115f362c2049c369c4f64864ab3412f'/>
<id>urn:sha1:052f51ff7115f362c2049c369c4f64864ab3412f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-guardmgr: Add tests for a few functions.</title>
<updated>2021-11-02T16:17:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-02T11:59:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c979a2f83a6eabf4b0e169af09a6c25e1eae5113'/>
<id>urn:sha1:c979a2f83a6eabf4b0e169af09a6c25e1eae5113</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mark primary guards as retriable when we come back online.</title>
<updated>2021-11-02T16:17:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-01T20:06:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=876a569f6cdda44600263cc4f9553987d2022d92'/>
<id>urn:sha1:876a569f6cdda44600263cc4f9553987d2022d92</id>
<content type='text'>
We define "coming back online" as happening when a guard attempt
succeeds, if that attempt that was launched when we seemed to be
offline.

We define "seeming to be offline" as having all of our primary
guards marked unreachable, and having received no incoming network
traffic in a while.

Closes #216.
</content>
</entry>
<entry>
<title>Add #[serde(flatten)] HashMap fields to serializable objects</title>
<updated>2021-10-27T12:31:52Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-10-27T12:31:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7a931b4de39f123b3af8afe96492bf5c67c81b95'/>
<id>urn:sha1:7a931b4de39f123b3af8afe96492bf5c67c81b95</id>
<content type='text'>
As per arti#175, we'd like to be able to handle newer Arti versions
storing additional state in the persisted state files, without dropping
this data on the floor when we write out changes to these files.

Use the #[serde(flatten)] mechanism to achieve this, by adding catch-all
HashMap&lt;String, JsonValue&gt; fields to all structs that are at risk of
this happening to them.
</content>
</entry>
<entry>
<title>Avoid a strange borrow syntax in tor_guardmgr::sample</title>
<updated>2021-10-26T16:03:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-26T14:22:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=682f31b1bf35e8a82ec98770cbafa8ef80ebbc7f'/>
<id>urn:sha1:682f31b1bf35e8a82ec98770cbafa8ef80ebbc7f</id>
<content type='text'>
I'm not sure what I was thinking here.
</content>
</entry>
<entry>
<title>Implement a "lightweight" form of pathbias detection.</title>
<updated>2021-10-26T16:03:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-25T15:06:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8c69b5d389a71e19054f13b973ea9d0e74f28ca9'/>
<id>urn:sha1:8c69b5d389a71e19054f13b973ea9d0e74f28ca9</id>
<content type='text'>
We now track, for every guard: the total number of successful
circuits we've built through it, along with the total number of
"indeterminate" circuits.

Recall that a circuit's status is "indeterminate" if it has failed
for a reason that _might_ be the guard's fault, or might not be the
guard's fault.  For example, if extending to the second hop of the
circuit fails, we have no way to know whether the guard deliberately
refused to connect there, or whether the second hop is just offline.

But we don't want to forgive all indeterminate circuit failures: if
we did, then a malicious guard could simply reject any second hops
that it didn't like, thereby filtering the client into a chosen
set of circuits.

As a stopgap solution, this patch now makes guards become
permanently disabled if the fraction of their circuit failures
becomes too high.

See also general-purpose path bias selection (arti#65), and Mike's
idea for changing the guard reachability definition (torspec#67).
This patch doesn't do either of those.

Closes #185.
</content>
</entry>
</feed>
