| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
| | |
| | |
| | |
| | | |
This shouldn't happen, but there's not a good reason to panic if it
does.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This is convenient for formatting filenames for the PoW nonce replay
log.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This will allow us to more easily switch out the implementation of this
queue as is needed for PoW.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds PowManager, as described in doc/dev/notes/service-side-pow.md,
hooks it into IptManager and Publisher, and adds code to publish and
rotate seeds, and to keep a updated list of Verifier instances for
currently active seeds.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
tor-proto: use the visibility crate for benchmarks
See merge request tpo/core/arti!3010
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
./maint/cargo_sort: Run cargo-sort on the entire workspace.
Closes #2014
See merge request tpo/core/arti!3011
|
| | | |
| | |
| | |
| | |
| | | |
The new `cargo-sort` version doesn't like the whitespace we're using to
logically group the workspace members.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The [latest version] of `cargo-sort` is more opinionated than the
previous one, and is now causing the `rust-checks` job to fail on
`main`.
This commit applies the fixes needed to satisfy the new `cargo-sort`
rules. These changes were generated by running `cargo sort --workspace`
several times, until `cargo sort --check --workspace` finally succeeded
(it couldn't fix all the errors in one go, for some reason).
I have omitted the changes `cargo-sort` made to the top-level
`Cargo.toml`, to preserve the topological ordering of the workspace
members.
Closes #2014
[latest version]: https://github.com/DevinR528/cargo-sort/blob/f066ae80e5e6f5c1d8f0e2b8099461dcb97d9656/changelog.md#200
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
Don't use MiddleOnly relays for rend points or intro points
Closes #1911
See merge request tpo/core/arti!3007
|
| | |
| |
| |
| | |
(text from Gabi)
|
| | | |
|
| | |
| |
| |
| | |
On !3007, @gabi-250 says that it was a mistake to have it be Naive.
|
| | |
| |
| | |
Co-authored-by: gabi-250 <[email protected]>
|
| | |
| |
| |
| | |
Closes #1911.
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
This is the preferred type for choosing a relay,
since unlike a RelayExclusion, it lets us add multiple restrictions,
and a relay usage.
|
| | |
| |
| |
| |
| |
| | |
We'll need this in order to build paths that are specifically
for client rend circuits. I thought of using a boolean here,
but that had potential to get ugly in the future.
|
| | |
| |
| |
| |
| |
| | |
We're going to be looking at this a little more closely
in order to decide whether the last hop of a stem can be used
as a rendezvous point.
|
| | |
| |
| |
| |
| | |
There are two other functions called "compatible_with_target"
that check a different property, so this one was confusing.
|
| | |
| |
| |
| |
| |
| |
| | |
This mirrors NewIntroPoint, and helps us to remember that we only
want to use this usage when we're a client that's picking a
rendezvous point; we don't want to enforce it when we're a relay
connecting to a client-selected rendezvous point.
|
| | |
| |
| |
| |
| |
| | |
"Useless as xyz" implies that the relay wouldn't work at all as a
middle relay, but that's not true: it _would_ work somewhat, but be
can't use it for some other reason.
|
| | |
| |
| |
| |
| |
| | |
Since we don't know what kind of traffic we'll use a rendezvous
point for, we don't want to use it if it isn't "Fast" (reasonably
high bw) and "Stable" (unlikely to crash soon).
|
| | |
| |
| |
| |
| |
| | |
> The actual impact of this patch is to prevent usage of MiddleOnly
> relays as Introduction Points. The Rendezvous Point logic isn't
> hooked up yet - nick
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
rtcompat: remove Letsencrypt/Rustls kludge
Closes #2004
See merge request tpo/core/arti!3006
|
| | | | |
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
tor-proto: Prevent sink and rx from being dropped in-place.
Closes #2005
See merge request tpo/core/arti!3005
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| | |
This was supposed to be fixed in 164d6b4d6c5, but that change failed to
bind `sink` and `rx in `futures::join!`, causing `sink` and `rx` to get
dropped, which would, in turn, cause the channel and circuit reactors to
shut down, sometimes leading to intermittent failures (#2005).
Closes #2005
|
| |\ \
| |/
|/|
| |
| | |
tor-proto: Remove multi-path check from allow_stream_requests().
See merge request tpo/core/arti!3002
|
| | | |
|
| | |
| |
| |
| | |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3002#note_3200935
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit c2d9ea952b4dcb91d05ee754e8d1a6ec6a0689b2.
`QueryLegs` is now unused. We also decided we won't need it for
implementing `Tunnel::path_ref()` as we are keeping the
`MutableState` between `ClientCirc` and the reactor (see !2996).
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, `ClientCirc:allow_stream_requests()` would return an error
when called on a multi-path tunnel.
My main reason for removing the conflux set length check is because it
enables us to remove the `QueryLegs` control command (which is something
we were planning on doing anyway).
Note that now that we've removed `ClientCirc::legs(), there's no way for
a multi-path `ClientCirc` to access its circuit legs, but that is fine,
because it's currently impossible to build multi-path `ClientCirc`s in
arti anyway. This issue will be addressed in the fork, in the new
`ClientTunnel` type that will be used for multi-path tunnels (a
`ClientCirc` will only ever be single-path, so it won't need to have a
`legs()` function at all).
I am also removing the `TODO(conflux)` that justifies the now-removed
check, because it's outdated (nowadays the `CellHandlers` are shared
between the tunnel reactor and its circuits). That said, we *still*
don't support onion service conflux, but that will be tackled separately
because there are a bunch of issues that still need to be resolved to
make it work (which I'll document separately).
Note that I've also made some changes to pass the `LegId` of the circuit
that received the incoming stream request to `StreamReqInfo` and
`StreamTarget`. This is in preparation for supporting multipath onion
service conflux, and because the `HopLocation` from `StreamTarget`
*needs* a `LegId`.
|
| |\
| |
| |
| |
| | |
arti: Fix TODO + Minor Refactor
See merge request tpo/core/arti!2935
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
arti-ureq: Remove obsolete early return in await_input
Closes #1952
See merge request tpo/core/arti!2997
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Resolve various new clippy warnings in 1.87
See merge request tpo/core/arti!3003
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The `IoError::other` function is an easier way to say
`IoError::new(IoErrorKind::Other, ...)`. It's been around since
1.74, but clippy started warning about the more verbose version in
1.87.
|