| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This implements the client side of proposal 321.
It's a breaking change in netdir, since in_same_family now takes an
extra argument.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When we're trying to exclude relays by family,
we need to know which lists to look at.
This information ultimately comes from the network parameters.
We could avoid this change if we just told clients
"look at all family information all the time",
but that's not what the proposal says.
This is a breaking change.
|
| |
|
|
|
|
| |
Denies 'mod.rs' files for consistency.
https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
|
| |
|
|
| |
These are new in Rust 1.83.
|
| |
|
|
|
|
|
|
| |
In 1.83, this warning triggers on many of our crates.
We're thinking of fixing them all, but for now,
we're going to disable the warning.
This is part of #1765.
|
| | |
|
| |
|
|
|
| |
These helpers seem potentially broadly useful, and only really
discoverable if they're here.
|
| |
|
|
|
| |
This allows us to set SRVs for example (needed because by default, the
test `NetDir` is built from a consensus that doesn't contain any SRVs).
|
| |
|
|
|
| |
This warning complains when we say `where T: SomeTrait + ?Sized`
when `SomeTrait` is inherently Sized.
|
| |
|
|
| |
This commit is automatically generated.
|
| |
|
|
|
| |
Previously they were a bit confusing, and the public function
explained its behavior in terms of the private one.
|
| |
|
|
|
|
|
| |
Explain that `by_ids` isn't what you want if you need to know
whether a relay _definitely_ doesn't exist.
Closes #1365
|
| | |
|
| |
|
|
| |
This was an open-coded specialisation. Remove the one call site.
|
| | |
|
| |
|
|
|
| |
Everybody outside of tor-netdir should use
HasRelayIds::same_relay_ids, whose intent is clearer.
|
| |
|
|
| |
These were only used for testing.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
In *RelayDetails, this is just a matter of changing a bunch of
`self`s to `self.0`.
Additionally, I've added temporary stub functions to delegate to the
new functions.
|
| |
|
|
| |
This is 99% code movement.
|
| |
|
|
|
|
|
|
|
|
| |
I'm going to use this wrapper type to hide checks
that should mostly not be used without careful thinking.
There are also comments here explaining when you'd want to use these
types, and when you shouldn't.
Part of #504.
|
| | |
|
| |
|
|
| |
We'll need this to implement restrictions more reasonably.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This matches the behavior of C tor. Part of #1100.
|
| |
|
|
|
|
| |
This matches the behavior of C tor.
Part of #1100.
|
| | |
|
| |
|
|
| |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1904#note_2987777
|
| |
|
|
|
|
|
|
| |
The publisher is the only user of `hs_dirs_upload`. It turns out it
never actually uses the first element of the yielded `Item`s, so we can
simplify `hs_dir_upload` to only return the HsDir `Relay`s.
Part of #1166
|
| |
|
|
|
|
|
|
|
| |
The descriptor publisher uses this function to obtain the list of
relevant time periods. It will soon also need to know the `srv_lifespan`
associated with each time period, so we change this function to return
`HsDirParams`.
Part of #1166
|
| |
|
|
| |
Closes #1254.
|
| | |
|
| |
|
|
|
|
| |
This implements Relay::is_hs_intro_point.
Close #1240.
|
| | |
|
| | |
|
| |
|
|
| |
These are not release-blockers.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The statement
```
if hsids.all(|(_hsid, period)| rings.any(|(_, _, tp)| tp == period)) {
```
had 2 bugs:
* the condition is reversed (it should be negated: we need to bail if
one of the specified `hsids` cannot be found on any of our rings)
* `rings.any()` mutates the `rings` iterator, causing
`hs_dirs_upload` to return fewer HSDirs than expected
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This threads the country codes work through the rest of the codebase:
- `tor-dirmgr` will now enable GeoIP with the embedded database when the
`geoip` future is enabled
- This can be extended later using the `DirMgrConfig` to allow
specifying a custom database; this is not done here, though
- `tor-circmgr`'s `SupportedCircUsage` and `TargetCircUsage` fields gain
new `country_code` members to allow filtering circuits by country
- These are `()` in builds where the `geoip` feature is not enabled --
doing it this way means we don't have to copy and paste huge swathes
of code, since we can't use `#[cfg]` in patterns
- `ExitPathBuilder` gains (hacked-in) support for choosing a relay with
the correct country code
- Due to the lack of conjuction, we just copy and paste a small bit,
pending further refactoring
- `StreamPrefs` now lets you specify a country code, letting embedders
make use of the feature
|
| |
|
|
| |
Apply erroneous formatting as demanded by rustfmt.
|
| | |
|
| |
|
|
|
|
|
|
| |
Call site as per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1550#note_2936401
Plus a TODO comment with an opinion from me about this API.
(Note not a TODO HSS so this is on the back burner.)
|
| |
|
|
|
|
| |
I'm quite unsure about this. Hence the TODOs.
I think the API is right, though.
|
| | |
|
| |
|
|
| |
`HsBlindId` is `Copy`.
|
| | |
|