| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| | |
Store fingerprint in Option<SpFingerprint>
See merge request tpo/core/arti!3978
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change might seem pointless for now but it will be required and
unavoidable later on, because we will have to change
RouterDesc::fingerprint from RsaIdentity to Option<SpFingerprint> which
will make it impossible to be used inside the getter anymore.
With this change, our only resort is to obtain the RSA identity from the
signing key but we can only return a copy then because that RSA identity
is created ad-hoc then.
|
| |/
|
|
|
|
|
|
|
|
|
| |
When the circ-padding feature is enabled, we use maybenot, which does
not yet support rand 0.10. In the meantime, enabling this feature pulls
in rand 0.9. This is not ideal, but should be okay as a temporary
situation.
This also replaces the use of ReseedingRng (which was removed in 0.10)
with the reseeding_rng crate. This is somewhat less performant, but it
should be okay.
|
| | |
|
| |
|
|
| |
- `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
|
| |
|
|
|
| |
This machinery is a bit inelegant, but it is all confined to
be within the GuardMgr crate, so IMO it should be fine for now.
|
| |
|
|
| |
BridgeConfig is itself an Arc now, so these are redundant.
|
| |
|
|
|
|
|
|
|
| |
If we have a bridge guard that is using Direct connection and it
knows multiple addresses, our code to match it with a BridgeConfig
is wrong, because the BridgeConfig has only one address, and our
code looks for an exact match.
Fixes #642.
|
| |
|
|
|
| |
There are some new TODOs here for us to think about, but I think
this will give us something to test.
|
| | |
|
| |
|
|
|
|
| |
This is the only way I could find in which parameter interpretation
differs between bridge guards and relay guards; with it documented,
I can remove a TODO about identifying such ways.
|
| | |
|
| |
|
|
|
| |
The BridgeSet type does not necessarily need further changes... and
if it gets them, it won't be because of this comment.
|
| |\
| |
| |
| |
| |
| |
| | |
Persistently cache bridge descriptors
Closes #619
See merge request tpo/core/arti!831
|
| | |
| |
| |
| |
| |
| | |
This is more consistent with our naming elsewhere.
Suggested-by: Nick Mathewson <[email protected]>
|
| | |
| |
| |
| |
| | |
Also remove a bunch of now-unnecessary `allow(dead_code)`
annotations.
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
We do this by checking the FirstHops we're about to return, and when
they correspond to bridges, looking up an appropriate BridgeRelay
in the current BridgeSet (if we can).
|
| | |
| |
| |
| |
| |
| | |
We already _have_ these Arc<>s whenever we construct a UniverseRef,
so there's no real point in using &refs and making these so
hard to construct.
|
| | |
| |
| |
| |
| |
| |
| | |
This will match our needs better and help avoid some `Arc<>`s.
It will be especially helpful for avoiding `Arc`s we don't
actually have.
|
| | |
| |
| |
| | |
We require these for NetDirProvider, so this shouldn't be a big reach.
|
| |/
|
|
|
| |
This allows the use of Box<dyn BridgeDescProvider> in callers,
since Box<dyn BridgeDescProvider> is now Clone.
|
| |
|
|
| |
This removes some duplication.
|
| |
|
|
|
|
|
| |
Previously we always set `dir_info_missing` to `false` for new
guards, since new guards could only be taken from ones that were
present in the NetDir. But for bridges, we don't download their
info until _after_ we have chosen them as guards.
|
| |
|
|
|
| |
Now we can use a group of bridges as the basis for a sample of
guards.
|
| |
|
|
| |
This will enable us to impl FlagEvent for it.
|
| |
|
|
| |
And explain what this all means.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Now keyed by Arc<BridgeConfig>, and the values can be errors.
Currently there is no implementation so there can't be any errors,
but the error enum will become nonempty.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
BridgeDesc is a separate type to make sure that we do not confuse
bridges' descriptors with the descriptors from other routers down
the road. (Bridges' descriptors need to be used differently, and
treated as more private.)
With this code, BridgerDescList is now just an alias for
`ByRelayIds<BridgeDesc>`, which is pretty keen.
|
| |
|