aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/client/reactor/conflux
Commit message (Collapse)AuthorAgeFilesLines
* proto: Push conflux state checks inside handshake_timeout().Gabriela Moldovan2025-09-251-2/+10
| | | | | | This simplifies the calling code, which will, in turn, make it easier for us to simplify the logic in ConfluxSet::next_circ_action() and abolish the questionable use of FuturesUnordered.
* proto: Use ConfluxCmd instead of CircuitCmd.Gabriela Moldovan2025-09-041-14/+8
| | | | | | This enables us to make the conflux handler logic implementation-agnostic (we want to avoid using `CircuitCmd` here, because it is specific to client circuits).
* proto: Move abstract conflux handlers outside of the client module.Gabriela Moldovan2025-09-042-610/+303
| | | | | | | | | | This moves the shared types under `tor_proto::conflux`. Note: the shared types currently import `CircuitCmd` from `client`. A future commit will change the signature of `handle_msg` to return something other than `CircuitCmd` (this will also improve readability, because in reality, that function can never return most `CircuitCmd` variants).
* proto: Move cmd_counts_towards_seqno to a new conflux module.Gabriela Moldovan2025-09-041-3/+4
| | | | | | | `tor_proto::conflux` is where the shared conflux logic will live. Soon the generic parts of the conflux handlers will be moved there (whereas the client-specific `AbstractConfluxMsgHandler` impl will continue living under `tor_proto::client`).
* proto: Make the ConfluxMsgHandler constructor take an abstract handler.Gabriela Moldovan2025-09-042-21/+12
| | | | | | This will enable us to pull `ConfluxMsgHandler` outside of the `client` module (this is needed because relays are meant to use this type as well, but with a different `AbstractMsgHandler`)
* proto: Update docs to clarify how we validate SWITCH seqnos.Gabriela Moldovan2025-09-041-8/+6
| | | | Also removes all the TODOs related to #2031 (which is now addressed).
* proto: Close tunnel if a leg receives consecutive SWITCH cells.Gabriela Moldovan2025-09-041-0/+14
| | | | Closes #2031
* proto: Ensure the seqno of the first SWITCH doesn't exceed the init cwnd.Gabriela Moldovan2025-09-041-0/+17
| | | | This partially addresses #2031
* proto: Store the seqno of last cell delivered in the client conflux handler.Gabriela Moldovan2025-09-042-0/+12
| | | | | | This will be needed for the SWITCH seqno validation logic. Part of #2031
* proto: Pass the cwnd params to the conflux message handler.Gabriela Moldovan2025-09-042-2/+20
| | | | | | These will be used for validating SWITCH cells. Part of #2031
* proto: Rename the `tunnel` module to `client` (fmt).Gabriela Moldovan2025-08-181-1/+1
|
* proto: Rename the `tunnel` module to `client`.Gabriela Moldovan2025-08-182-0/+626
The implementation from `tunnel` is client-specific, so we are renaming the module accordingly. The more generic parts will be pulled into a separate module in a future commit.