aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/client/circuit.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'maybenot-manual' into 'main'Nick Mathewson2025-09-161-0/+39
|\ \ | |/ |/| | | | | proto: Experimental API to install a circuit padder at a hop. See merge request tpo/core/arti!3262
| * Fix several rustdoc links.Nick Mathewson2025-09-161-8/+6
| |
| * proto: Experimental API to install a circuit padder at a hop.Nick Mathewson2025-09-151-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | For now, we're not going to implement hop negotiation: we're still waiting to find a set of padding machines that will be useful for Arti. This API will help facilitate experimentation to find such padding machines. These APIs are under a separate feature (`circ-padding-manual`) to avoid confusing them with the rest of the padding code: we only want them to be exported when the researcher wants to manually install circuit padding.
* | tor-proto: add `FlowCtrlParameters` to `CircParameters` and `HopSettings`Steven Engler2025-09-111-4/+41
|/
* proto: Add test ensuring consecutive SWITCHes trigger tunnel teardown.Gabriela Moldovan2025-09-041-0/+48
|
* proto: Only send the bad test cell on one of the circuit legs.Gabriela Moldovan2025-09-041-7/+4
| | | | | | | | | This makes it clearer that the tunnel shutdown is triggered correctly (i.e. that it is enough for *one* of the legs to receive the bad SWITCH cell). This also updates a comment that wrongly suggests that the tunnel is only shut down if both legs get removed from the conflux set.
* proto: Pass the cc params as an argument to setup_good_conflux_tunnel.Gabriela Moldovan2025-09-041-12/+13
| | | | | | | The test code now creates the params (which enables it to build test cases that use various params). Resolves a TODO.
* proto: Add another test for SWITCH seqno validation.Gabriela Moldovan2025-09-041-8/+7
|
* padding: Give CircEnt in a Channel a handle for the PaddingController.Nick Mathewson2025-09-021-4/+21
| | | | | This requires some annoying plumbing to make sure that the right types wind up in the right places.
* Define and implement a backend padding API, based on maybenot.Nick Mathewson2025-09-021-0/+2
| | | | | | | | There are incomplete pieces, marked with "TODO circpad". There is no integration into the circuit reactor code yet. Part of #63
* proto: Add a circuit module shared between client and relay impls.Gabriela Moldovan2025-08-281-5/+3
| | | | | | | This is just code motion (I suggest reviewing with `--color-moved`). This also moves the implementation-agnostic parts from `tor_proto::client::circuit` to a new `tor_proto::circuit` module.
* proto: Make the OutboundClientHandshake use new cell handlerDavid Goulet2025-08-201-9/+4
| | | | | | | | | | | | | | | | | Use the ChannelFrame<> for the entirety of the outbound client handshake that is the ClientInitiator channel type. With this change, the codec.rs code is not needed anymore along its CodecError as well which has been normalized onto the crate::Error instead in order to simplify error handling and avoid duplication of error types. Unit tests have been modified to reflect this change of what can be done with a channel frame. Also renamed to focus on client behavior. Part of #1597 Signed-off-by: David Goulet <[email protected]>
* proto: Move the `stream` module under `client` (fmt).Gabriela Moldovan2025-08-181-3/+3
|
* proto: Move the `stream` module under `client` (breaking).Gabriela Moldovan2025-08-181-5/+5
| | | | | | | | | | | | The `stream` module is client-specific, for the most part, so I am moving it under `client`. Later on, we will factor out the parts that can be shared with the relay implementation. Note: this is a breaking change as the deleted `stream` module was `pub`. We could've kept the module and reexported from it the public types from `tor_proto::client::stream`, but I think it's better to have this `client` namespacing, because it makes the separation between the client and relay parts clearer.
* proto: Rename the `tunnel` module to `client` (fmt).Gabriela Moldovan2025-08-181-3/+3
|
* proto: Rename the `tunnel` module to `client`.Gabriela Moldovan2025-08-181-0/+4008
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.