| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | |
| |
| |
| | |
This will be useful for testing.
|
| | |
| |
| |
| | |
The referenced types are no longer available in `vanguards.rs`.
|
| | | |
|
| | |
| |
| |
| | |
We will soon use this to test full vanguards.
|
| | |
| |
| |
| |
| |
| | |
This doesn't need to be `pub(super)` anymore, `VanguardMgr` now
manipulates the `VanguardSets` exclusively through
`VanguardSetsTrackedMut`.
|
| | |
| |
| |
| |
| |
| | |
The `VanguardMgr` reads the vanguards from the vanguards state file,
whether full vanguards are enabled or not. It only persists the vanguard
sets to storage if full vanguards are in use.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since `rotate_expired()` (previously `remove_expired()`) now also
replenishes the vanguard sets, we can't use `advance_until_stalled()`
anymore, because `run_once()` is never be stalled in the tests
(`next_to_expire` is never `None`, so `sleep_fut` is never
`future::pending()`:
```
warning: MockRuntime advance_* looped >1000 (next sleep: 877560507ms)
```
Previously, `next_to_expire` was computed *before* replenishing the
vanguard sets, which is why the tests could use
`advance_until_stalled()`.
|
| | |
| |
| |
| |
| | |
This addresses a TODO about not calling `handle_netdir_update`
unconditionally each time `VanguardMgr::run_once()` runs.
|
| | |
| |
| |
| |
| |
| | |
A lot of this is code motion: the code added to `VanguardSetsTrackedMut`
was copied from the `VanguardMgr` impl, so I recommend reviewing this
with `git diff --color-moved=zebra`.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This enables us to track when `VanguardMgr`'s `VanguardSets` is
*actually* mutated.
This will soon be useful because we only want to flush the
`VanguardSets` to storage if we actually added or removed some relays
from the set.
|
| | |
| |
| |
| |
| | |
These will be useful later, when we place the `l2_vanguards` and
`l3_vanguards` from `VanguardMgr` with a `VanguardSets`.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
changed.
The two removal functions now return whether any values were removed
from the `VanguardSet`. Their return values are currently ignored, but
will soon be used for deciding whether to flush the `VanguardSet`s to
disk (if full vanguards are enabled).
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
`VanguardSets` (not to be confused with `VanguardSet`) will soon be used
as:
* a helper for serializing the L2 and L3 `VanguardSet`s
* an abstraction over the two vanguard sets
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We will soon replace `VanguardSet::new` with `VanguardSet::default`:
`new()` currently expects a set of `VanguardParams` (from which the
target size of the set is derived), but we don't have a `VanguardParams`
until we obtain a `NetDir`. Moreover, it doesn't make sense to attempt
to set the target size of the `VanguardSet` before obtaining a `NetDir`,
because we can't actually populate the set without a `NetDir` (we can't
select relays).
|
| | |
| |
| |
| |
| |
| |
| | |
By default, HS clients should be using lite vanguards, and HS services
full vanguards.
See https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/258#note_3011734
|
| | |
| |
| |
| | |
This TODO is fixed later in the branch.
|
| | |
| |
| |
| | |
Closes #1364
|
| |/
|
|
|
|
|
|
|
|
|
| |
This adds a new `RelayUsage` for vanguards. As per the original
[vanguards implementation], vanguards must:
* have the Fast, Stable, and Valid flags
* be selected using the `Middle` weight
Part of #1364
[vanguards implementation]: https://github.com/mikeperry-tor/vanguards
|
| |\
| |
| |
| |
| |
| |
| | |
Upgrade to futures-rustls 0.26.0, rustls 0.23.5.
Closes #1377
See merge request tpo/core/arti!2095
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The rustls upgrade will solve #1377 and CVE-2024-32650.
Note that we've had to patch our RustlsProvider impl a bit in order
to keep the tests passing. See comments.
Closes #1377.
|
| |/
|
|
|
|
| |
Nightly clippy doesn't like using "expr as T" when the conversion is
lossless; it prefers "T::from(expr)" so that if we later change the
type of T to something with a lossy conversion, we'll know.
|
| | |
|
| |\
| |
| |
| |
| | |
tor-guardmgr: Minor vanguard-related cleanups
See merge request tpo/core/arti!2088
|
| | | |
|
| | |
| |
| |
| | |
It was addressed in !2083
|
| | |
| |
| |
| |
| | |
This is no longer true because of !2082. The `VanguardSet` *does* own
its `TimeBoundVanguards`.
|
| | |
| |
| |
| | |
These are not used anymore as of !2082, so we can remove them now.
|
| | |
| |
| |
| | |
This was a typo.
|
| | |
| |
| |
| | |
This is a broken link when built without --document-private-items.
|
| |/
|
|
| |
I overlooked this, apparently.
|
| |
|
|
| |
RunningOnionService::status_events()
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Based on our discussion on https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/258#note_3011734
If it turns out this is not the behaviour we want, we can update `Inner::mode()` accordingly.
|
| | |
|
| |
|
|
|
|
| |
The `VanguardMgr` needs to know whether arti is running as an onion
service or not, in order to figure out which of the `vanguards_enabled`
and `vanguards_hs_service` modes to use.
|
| |
|
|
|
|
|
|
| |
We have two vanguard modes, one for when arti is running as a client,
and a separate one for when it's running as a service.
Both modes are extracted from the `NetParameters`, so they belong in
`VanguardParams`.
|
| |\
| |
| |
| |
| | |
Refactor RPC system to use derive_deftly; add generic-object support
See merge request tpo/core/arti!2079
|
| | | |
|