| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
| | |
| | |
| | | |
As mentioned in #2002, we don't yet support conflux for onion services.
|
| | | |
| | |
| | |
| | |
| | | |
It is the responsibility of the caller to wait until at least one of the
legs completes the handshake.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This will be covered by #2031 (we'll implement prop349 as part of the
p112 work).
|
| | |/
| |
| |
| |
| |
| | |
All of this is not needed, the actual test is in the loop below.
(I accidentally left this in after refactoring the test in my last MR)
|
| |\ \
| |/
|/|
| |
| | |
Bump rusqlite dependency to 0.36.0
See merge request tpo/core/arti!3041
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
tor-netdir: decrease minimum hsdir_interval from 30 to 5
See merge request tpo/core/arti!3042
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This matches the spec change:
<https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/406>
Progress on:
<https://gitlab.torproject.org/tpo/core/chutney/-/issues/40038>
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
Upgrade dependency to hickory-proto 0.25.2
Closes #1982
See merge request tpo/core/arti!3038
|
| | | |
| | |
| | |
| | | |
Closes #1982.
|
| | | |
| | |
| | |
| | | |
For conflux, we need to test against vegas.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
I think this is going to be more of a tuning matter, so it's probably
best tackled after we have a working conflux implementation.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of only shutting down the leg on which the protocol violation
occurred, it seems better to shut down the entire tunnel (because the
other endpoint, i.e. the exit, is the cause of the violation, so we
should probably avoid using it entirely).
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
The `UniqId` matters for multipath tunnels.
|
| | | |
| | |
| | |
| | |
| | | |
This preserves the existing behavior of `newcirc()` (which creates
3-hop circuits, where each hop has the same `HopDetail`).
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
For the conflux tests, we need to be able to create circuits with fake
hops that have different peer_ids.
|
| | | |
| | |
| | |
| | |
| | | |
Fixes a bug causing the conflux handshake to always fail with
`ConfluxHandshakeError::Timeout`.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This was addressed a while ago, in
09a601aed9aac9effa230701b02ba865b5754469
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If we reach this point and the join point is `None`, it means the
conflux set has so far consisted of a single leg. This means we need to
assign the last hop of the (only) leg to the join point. This initial
leg is in `self.circuits`, not in `legs` (`legs` is the list of *new*
legs that are being added to the set).
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This will be needed for logging purposes.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`num_legs` keeps track of the number of legs that have an in-progress
conflux handshake.
This updates the calculation to count the "initial" leg of the tunnel
too (because when converting a single-path reactor to a multi-path one,
the existing, "initial" circuit needs to complete the conflux handshake
too).
|
| | | |
| | |
| | |
| | |
| | | |
If we don't make an exception for LINK cells, we'll never be able to
send them, and the circuits will be forever "pending conflux handshake".
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This fixes a bug where we'd fail to set the `ConfluxMsgHandler` for the
initial leg of the `ConfluxSet`, when converting the set from a
single-path set to a multi-path one.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
As per the replacement rules from prop354. Except we can't actually
enforce the replacement rules at this level (they'll have to be enforced
by the caller).
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
We need to eventually tackle all of these, but none of them are
critical, so I propose we downgrade them to `TODO`.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I really dislike that we're exposing the stream map this way. Ideally
we'd have some way of sharing the stream maps without exposing
the `StreamMap` in `reactor::conflux`.
Closes #2011
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Most of this is code motion, I recommend reviewing with `--color-moved`.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This helps hide the `CircHop` internals, and is the first step towards
providing a safer API that aims to reduce contention and prevent
deadlocking on the stream map mutex.
This change is also in preparation for implementing special handling for
the join point of a conflux tunnel (which will involve adding a new
`CircHop` API for sharing the stream map of another `CircHop`).
I recommend reviewing this diff with `--color-moved`.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Initial refactoring on CircParameters
Closes #1967 and #1968
See merge request tpo/core/arti!3021
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When negotiation won't occur, we need to represent the fact by
disabling any settings that would depend on negotiation.
Otherwise we'll wind up with the client thinking everything
was supported, and the relay thinking that nothing is.
|
| | | | | |
|
| | | | | |
|