- Mar 30, 2022
-
-
Nick Mathewson authored
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.
-
eta authored
Remove allow(clippy::disallowed_methods) lint flag. See merge request tpo/core/arti!437
-
eta authored
Make daemon tasks self-contained; introduce NetDirProvider See merge request tpo/core/arti!436
-
eta authored
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.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
eta authored
Don't use SystemTime::now() Closes #306 See merge request tpo/core/arti!365
-
- Mar 29, 2022
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
(Doing this a few days ahead of time to give updated code time to get testing)
-
- Mar 28, 2022
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
implement IsolationHelper for StreamIsolation See merge request tpo/core/arti!434
-
- Mar 27, 2022
-
-
trinity-1686a authored
-
- Mar 25, 2022
-
-
Ian Jackson authored
Fixed typo on arti-client README.md See merge request tpo/core/arti!432
-
Ian Jackson authored
arti-client, dirmgr: Initial DirFilter code See merge request tpo/core/arti!431
-
Nick Mathewson authored
Simplify DirFilter API See merge request nickm/arti!1
-
Ian Jackson authored
This means you can write a DirFilter and only write code to mess with the bits you want to. Also, it is less code here.
-
Ian Jackson authored
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<dyn> gets rid of a lot of unnecessary boilerplate and conversion code.
-
Ian Jackson authored
Abolish the handwritten Debug impl for DynFilter, which is no longer needed.
-
eta authored
Implement a periodic task scheduler, and a basic dormant mode See merge request tpo/core/arti!429
-
- Mar 24, 2022
-
-
trinity-1686a authored
but don't use it in a dyn Isolation context
-
solanav authored
-
trinity-1686a authored
-
trinity-1686a authored
-
trinity-1686a authored
-
trinity-1686a authored
-
trinity-1686a authored
-
trinity-1686a authored
-
Nick Mathewson authored
This will make it possible to implement a directory-munging mechanism in arti-testing for #397.
-
Nick Mathewson authored
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.
-
Nick Mathewson authored
-
eta authored
Addressing review comments: added some unit tests for the new scheduler type, and made FireIn use an Instant instead (making it FireAt).
-
- Mar 23, 2022
-
-
eta authored
This is a revised version of !397; it implements a scheduling system for periodic tasks that can be externally controlled, and then uses the external control aspect to implement a basic dormant mode (#90). More technically, the scheduling system consists of a `Stream` that periodic tasks are expected to embed in a `while` loop or similar, a way for tasks themselves to choose how long to wait until the stream next yields a result, and a handle to control this outside of the task.
-
Nick Mathewson authored
tor-proto: add the ability to learn clock skew from NETINFO cells See merge request tpo/core/arti!410
-
Nick Mathewson authored
We now check the handshake certificates unconditionally, and only report them as _expired_ as a last resort. (Rationale: if somebody is presenting the wrong identity from a year ago, it is more interesting that they are presenting the wrong ID than it is that they are doing so with an expired cert. We also now report a different error if the certificate is expired, but its expiration is within the range of reported clock skew. (Rationale: it's helpful to distinguish this case, so that we can blame the failure on possible clock skew rather than definitely attributing it to a misbehaving relay.) Part of #405.
-
Nick Mathewson authored
NETINFO cells, which are sent in every handshake, may contain timestamps. This patch adds an accessor for the timestamp in the Netinfo messages, and teaches the tor-proto code how to compute the minimum clock skew in the code. The computation isn't terribly precise, but it doesn't need to be: Tor should work fine if your clock is accurate to within a few hours. This patch also notes a Y2038 problem in the protocol: see torspec#80. Part of #405.
-
eta authored
Move SystemConfig to arti::cfg Closes #418 and #314 See merge request tpo/core/arti!427
-
eta authored
Expand documentation for isolation traits See merge request tpo/core/arti!420
-
- Mar 21, 2022
-
-
Nick Mathewson authored
Change rules for retrying guards (and marking them broken) See merge request tpo/core/arti!426
-