aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/client/reactor/control.rs
Commit message (Collapse)AuthorAgeFilesLines
* tor-proto: box `CircParameters` in test-only `CtrlCmd::AddFakeHop`Steven Engler2026-08-111-1/+2
| | | | This fixes a `clippy::large_enum_variant`.
* tor-cell: rename `XonKbpsEwma` to `XonKBpsEwma`Steven Engler2026-07-301-2/+2
|
* proto: log virtual hop additions at trace.Nick Mathewson2026-07-021-0/+2
| | | | We do something similar with non-virtual hops at !4076.
* proto: Add crate-level exports for two extra stream types (fmt)Gabriela Moldovan2026-06-171-1/+1
|
* tor-proto: move memquota stream account arg to last positionSteven Engler2026-05-211-1/+1
| | | | This better matches nearby code.
* tor-proto: move more stream queue init to reactorSteven Engler2026-05-211-17/+0
| | | | | | | | | | | | | | | | | | | | Previously when initializing a stream, we constructed most of the stream-related queues outside of the reactor and passed the relevant halves of the queues (senders or receivers) into the reactor. A downside of the above approach is that the reactor may be better informed about what queues to construct, and how to construct them. For example the reactor knows what type of flow control that the hop is using, so it knows whether we need queues for passing rate limits and drain rates for XON/XOFF flow control. This commit moves the construction of these queues into the reactor and passes the relevant halves out of the reactor. In the future we can make better decisions about which queues are needed depending on the flow control method used instead of always constructing them (see arti#2068). Reviewing with `--color-moved` might be helpful as a few lines have been moved.
* tor-proto: add `ReactorStreamComponents` to bundle return valsSteven Engler2026-05-201-5/+9
|
* tor-proto: move stream incoming queue init to reactorSteven Engler2026-05-201-14/+12
| | | | | | | | | | | The stream queue length (for messages incoming from the Tor network) depends on the type of flow control we're using for the hop. Currently we construct the stream queue outside of the circuit reactor, but we don't have the flow control information here. Instead of constructing the stream queue outside of the reactor and passing the sender into the reactor, we construct the stream queue inside of the reactor and pass the receiver out of the reactor.
* tor-proto: clean up return type of `Circuit::begin_stream()`Steven Engler2026-05-111-9/+3
|
* tor-proto: reorg error handling for BeginStream reactor cmdSteven Engler2026-05-111-2/+19
|
* proto: Dedupe IncomingStreamRequestHandlerGabriela Moldovan2026-01-121-3/+3
|
* proto: Make the hop in SendRelayCell optionalGabriela Moldovan2025-11-171-2/+2
|
* tor-proto: Track information on when tunnels were last usedNick Mathewson2025-11-121-0/+12
| | | | This is part of an implementation for proposal 368.
* proto: Move StreamMpsc{Sender,Receiver} to stream moduleGabriela Moldovan2025-10-211-1/+1
| | | | These will be shared with the relay code.
* proto: Move hop settings into a shared moduleGabriela Moldovan2025-10-211-1/+2
|
* proto: Move streammap out of the client moduleGabriela Moldovan2025-10-211-1/+2
|
* proto: Move dumb pipes to top-lvl stream module (fmt)Gabriela Moldovan2025-10-211-1/+1
|
* proto: Move dumb pipes to top-lvl stream moduleGabriela Moldovan2025-10-211-1/+1
|
* Refactor: turn circ_extensions_from_settings into a methodNick Mathewson2025-10-201-2/+1
| | | | Closes #2067.
* proto: Reformat imports post-move.Gabriela Moldovan2025-10-161-1/+1
|
* proto: Avoid crate-pub reexports of shared types from the client module.Gabriela Moldovan2025-10-161-1/+1
| | | | | This makes it easier to see which parts are implementation-agnostic (i.e. do not import from crate::client).
* proto: Move celltypes out of clientGabriela Moldovan2025-10-131-1/+1
| | | | | Some of these are relay-specific, so it makes more sense to pull this into a top-level module.
* proto: Move flow_ctrl module under stream (fmt).Gabriela Moldovan2025-10-071-2/+2
|
* proto: Move flow_ctrl module under stream.Gabriela Moldovan2025-10-071-2/+2
| | | | This will be used by exits too, so I am moving it out of `client`.
* Fix several rustdoc links.Nick Mathewson2025-09-161-2/+2
|
* proto: Experimental API to install a circuit padder at a hop.Nick Mathewson2025-09-151-0/+25
| | | | | | | | | | | | 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: move `DrainRateRequest`Steven Engler2025-09-101-1/+2
|
* tor-proto: remove a `pub(crate) use` from `client::stream`Steven Engler2025-09-101-1/+2
| | | | | For internal types, I think it becomes too much of a mess to export everything through a single module.
* proto: Add a circuit module shared between client and relay impls.Gabriela Moldovan2025-08-281-3/+2
| | | | | | | 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: Move the `stream` module under `client` (fmt).Gabriela Moldovan2025-08-181-2/+2
|
* proto: Move the `stream` module under `client` (breaking).Gabriela Moldovan2025-08-181-3/+3
| | | | | | | | | | | | 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-8/+8
|
* proto: Rename the `tunnel` module to `client`.Gabriela Moldovan2025-08-181-0/+766
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.