summaryrefslogtreecommitdiff
path: root/crates/tor-proto
Commit message (Collapse)AuthorAgeFilesLines
...
* | proto: Move halfstream under streammapGabriela Moldovan2025-10-213-3/+4
| | | | | | | | | | | | That way we don't need to make halfstream `pub(crate)` (we only really use it in streammap, and in the client reactor, because of the `handle_msg()` kludge).
* | proto: Move streammap out of the client moduleGabriela Moldovan2025-10-2110-13/+15
| |
* | proto: Move dumb pipes to top-lvl stream module (fmt)Gabriela Moldovan2025-10-217-7/+7
| |
* | proto: Move dumb pipes to top-lvl stream moduleGabriela Moldovan2025-10-2110-9/+10
| |
* | proto: Give the relay reactor a stream mapGabriela Moldovan2025-10-213-4/+12
| | | | | | | | | | | | We need it for exits and leaky pipe. Part of #2212
* | proto: Rename RelayReactor to BackwardReactorGabriela Moldovan2025-10-211-5/+15
|/ | | | | | | | | "Backward" because this reactor will deal with relaying cells in the backward direction (from exit to client). In addition, this reactor will deal with stream handling and control/command messages. We will soon have another, "forward", reactor, relaying cells in the forward direction.
* Cleanup: Remove a variable renameNick Mathewson2025-10-201-4/+2
|
* Refactor: turn circ_extensions_from_settings into a methodNick Mathewson2025-10-203-63/+62
| | | | Closes #2067.
* proto: Rename data cmd checkers to {Inbound,Outbound}DataCmdChecker (fmt)Gabriela Moldovan2025-10-161-1/+2
|
* proto: Rename data cmd checkers to {Inbound,Outbound}DataCmdCheckerGabriela Moldovan2025-10-167-19/+19
| | | | | | The previous "incoming" terminology was rather ambiguous. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3348#note_3275337
* proto: Fix docs to refer to the right stream:: paths.Gabriela Moldovan2025-10-162-2/+2
|
* proto: Move IncomingDataCmdChecker to top-level stream module.Gabriela Moldovan2025-10-164-49/+55
| | | | | | | This will be used by relays too (for validating incoming messages on streams). This is just code motion, so it's best reviewed with `--color-moved`.
* proto: Split out DataCmdChecker into multiple types (fmt).Gabriela Moldovan2025-10-161-1/+1
|
* proto: Split out DataCmdChecker into multiple types.Gabriela Moldovan2025-10-163-13/+51
| | | | | | | | | | | The incoming one will be used for the exit relay implementation too. Also, with this change, receiving `CONNECTED` on an incoming stream will result in a clearer error message. Previously, the check against receiving `CONNECTED` on an incoming stream was bundled with the double-CONNECTED check for client data streams, so in the incoming stream case, the error message was misleading ("Received CONNECTED twice on a stream.").
* proto: Do not fully-qualify Arc.Gabriela Moldovan2025-10-161-3/+3
| | | | | `Arc` is already in scope, and not fully-qualifying it makes it more readable.
* proto: Replace fully-qualified paths with use (fmt).Gabriela Moldovan2025-10-162-8/+2
|
* proto: Replace fully-qualified paths with use.Gabriela Moldovan2025-10-162-8/+8
|
* proto: Reformat imports post-move.Gabriela Moldovan2025-10-1610-12/+11
|
* proto: Avoid crate-pub reexports of shared types from the client module.Gabriela Moldovan2025-10-1611-20/+19
| | | | | This makes it easier to see which parts are implementation-agnostic (i.e. do not import from crate::client).
* proto: Move cmdchecker under top-level stream module.Gabriela Moldovan2025-10-163-2/+2
| | | | | The CmdChecker will be used by relays too, so I am moving it to the shared `stream` module.
* Merge branch 'outbound-relay-doc-fix' into 'main'Nick Mathewson2025-10-161-1/+1
|\ | | | | | | | | proto: Fix typo in OutboundRelayLayer docs. See merge request tpo/core/arti!3346
| * proto: Fix typo in OutboundRelayLayer docs.Gabriela Moldovan2025-10-081-1/+1
| | | | | | | | | | `OutboundRelayLayer::decrypt_outbound()` is for decrypting cells moving *away* from the client (in the "forward direction").
* | tor-proto: update unit testSteven Engler2025-10-141-27/+24
| |
* | tor-proto: relax XON limitsSteven Engler2025-10-141-3/+13
| |
* | tor-proto: remove `StreamEndpointType`Steven Engler2025-10-143-31/+12
| |
* | tor-proto: relax XOFF limitsSteven Engler2025-10-141-22/+30
| |
* | tor-proto: add derives for `CellCount`Steven Engler2025-10-141-1/+1
| |
* | Merge branch 'rm-allow' into 'main'Ian Jackson2025-10-141-1/+0
|\ \ | | | | | | | | | | | | proto: Remove an allow that is no longer needed See merge request tpo/core/arti!3356
| * | proto: Remove an allow that is no longer neededGabriela Moldovan2025-10-141-1/+0
| | |
* | | Merge branch 'celltypes' into 'main'gabi-2502025-10-1410-11/+13
|\ \ \ | | | | | | | | | | | | | | | | proto: Move celltypes out of client See merge request tpo/core/arti!3355
| * | | proto: Move celltypes out of clientGabriela Moldovan2025-10-1310-11/+13
| |/ / | | | | | | | | | | | | Some of these are relay-specific, so it makes more sense to pull this into a top-level module.
* | | Merge branch 'unique-id' into 'main'David Goulet2025-10-142-19/+30
|\ \ \ | | | | | | | | | | | | | | | | proto: Stop using tunnel IDs in relay reactor. See merge request tpo/core/arti!3353
| * | | proto: Stop using tunnel IDs in relay reactor.Gabriela Moldovan2025-10-132-19/+30
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using a tunnel ID here doesn't make much sense right now, because we don't yet support exit-side conflux (and when we will, it's unclear whether the concept of "tunnel" will be applicable, especially if we refactor things such that multi-path circuits are handled without a ConfluxSet-like type like we have for clients). This change forces us to stop using the client-specific `unwrap_or_shutdown` (because this macro expects `self` to have a tunnel ID), but IMO that is okay.
* / / proto: Use a small vec for the hop list.Gabriela Moldovan2025-10-131-1/+7
|/ / | | | | | | | | We can optimize for the general (N <= 3) case, and avoid a heap allocation.
* | tor-proto: bring back comparison chain w/ allowhashcatHitman2025-10-081-9/+14
| | | | | | | | | | | | | | | | It was decided that the comparison chain was actually preferrable for readability. So instead, we're just `allow`ing it until it stops being a problem. Signed-off-by: hashcatHitman <[email protected]>
* | tor-proto: replace comparison chain with matchhashcatHitman2025-10-081-8/+9
|/ | | | | | | | | | | | | | | | | | | | | | | | | There was a comparison chain in `tor_proto::util::poll_all::test::ResolveAfter::poll` which was causing a clippy warning. The lint in question, `clippy::comparison_chain`, was a `clippy::style` lint in 1.85.1 and got moved to `clippy::pedantic` in 1.87.0 (see [rust-clippy!14219]). Since some of us (like me) develop on MSRV, I'm fixing this lint now. Gabi didn't have any strong opinions on whether I did it like this or with an `allow` attribute, so I decided this was better since it means we don't have to come back later just to remove the `allow`. It should be noted that using a match like this can sometimes be a performance regression (see [rust-clippy#5354] and [rust-clippy!6390]). I would expect in this case the effect will be very little, if any, but if tests in `tor_proto::util::poll_all::test` start taking much longer and having an impact on CI or something, this could be why. [rust-clippy!14219]: https://github.com/rust-lang/rust-clippy/pull/14219 [rust-clippy#5354]: https://github.com/rust-lang/rust-clippy/issues/5354 [rust-clippy!6390]: https://github.com/rust-lang/rust-clippy/pull/6390 Signed-off-by: hashcatHitman <[email protected]>
* Merge branch 'mv-flow-ctrl' into 'main'gabi-2502025-10-0820-30/+32
|\ | | | | | | | | proto: Move flow_ctrl module under stream. See merge request tpo/core/arti!3335
| * proto: Fix flow control docs post-move.Gabriela Moldovan2025-10-071-2/+2
| | | | | | | | | | | | | | | | | | | | `StreamFlowCtrl` is no longer accessible via `tor_proto::client`, so I had to update one of the (doc) imports with its new path Also, I had to change a couple of imports to use `DataWriter` and `DataStream` from `crate::client::stream` instead of `crate::client::stream::data`, because the latter is not visible from `flow_ctrl` anymore.
| * proto: Move flow_ctrl module under stream (fmt).Gabriela Moldovan2025-10-0711-22/+18
| |
| * proto: Move flow_ctrl module under stream.Gabriela Moldovan2025-10-0720-24/+25
| | | | | | | | This will be used by exits too, so I am moving it out of `client`.
| * proto: Add a top-level stream module.Gabriela Moldovan2025-10-072-0/+5
| | | | | | | | | | This will house the implementation-agnostic stream types and functionality.
* | tor-proto: deprecate handshake-specific create/extend variantsNick Mathewson2025-10-071-0/+10
|/ | | | | | | Everybody should use create_firsthop() and extend(), and let tor-proto decide which handshake is best. Closes #1990.
* Merge branch 'chan_padder' into 'main'Nick Mathewson2025-10-068-52/+346
|\ | | | | | | | | Apply maybenot padding to channels See merge request tpo/core/arti!3314
| * proto: Add a comment to note a naming issue.Nick Mathewson2025-10-021-0/+4
| |
| * proto: experimental API to install a per-channel padder.Nick Mathewson2025-10-022-0/+44
| |
| * proto: Implement channel padding with maybenot padders.Nick Mathewson2025-10-023-14/+95
| | | | | | | | With this commit we now actually generate padding when we're told to.
| * proto: start implementing logic for padding actions.Nick Mathewson2025-10-024-3/+48
| |
| * Add a blocker to channel outbound sink.Nick Mathewson2025-10-023-1/+20
| |
| * proto: Make DynTimeProvider explicit in channel padder types.Nick Mathewson2025-10-021-2/+6
| |
| * proto: Trigger maybenot events for channel-level padding.Nick Mathewson2025-10-023-7/+44
| |