aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/client
Commit message (Collapse)AuthorAgeFilesLines
...
| * padding: Install a PaddingController in each circuit.Nick Mathewson2025-09-023-5/+16
| | | | | | | | Also, use it to report that we have queued normal data.
| * padding: track which hop each queued cell is for.Nick Mathewson2025-09-024-16/+84
| | | | | | | | | | | | | | | | We'll need this so that we can tell the right padding machine(s) which of them just had a queue flush. This is not yet 100% done; the unfinished parts are marked with XXXXs.
* | tor-proto: fix bug in `congestion_signals`Steven Engler2025-09-031-1/+3
|/
* padding: document when we set next_scheduled_wakeupNick Mathewson2025-09-021-0/+3
|
* padding: Call hops "target" rather than "final" for clarityNick Mathewson2025-09-021-4/+6
|
* padding: s/can_bypass/is_bypassable/ for clarity.Nick Mathewson2025-09-022-10/+11
|
* padding: Clarify next_expiration vs next_scheduled_wakeupNick Mathewson2025-09-021-4/+9
|
* padding: Several comment/style fixes from @gabi-250Nick Mathewson2025-09-024-8/+11
|
* Define and implement a backend padding API, based on maybenot.Nick Mathewson2025-09-025-0/+1336
| | | | | | | | There are incomplete pieces, marked with "TODO circpad". There is no integration into the circuit reactor code yet. Part of #63
* proto: Use allow(unused) instead of expect(unused).Gabriela Moldovan2025-08-291-1/+1
| | | | | | | | | | | With rustc 1.85, this `expect(unused)` triggers a "lint expectation unfulfilled" error, because rust thinks the struct *is* used (because of the d-d `TryFrom` implementation), despite the fact that it's never actually constructed. This isn't a problem on newer versions (it's correctly identified as unused/dead code on 1.89, for example). Using `allow` instead of `expect` is slightly less nice, but it makes `clippy` pass on 1.85 too.
* proto: Move TunnelId to a separate, shared module (fmt).Gabriela Moldovan2025-08-285-5/+5
|
* proto: Move TunnelId to a separate, shared module.Gabriela Moldovan2025-08-285-6/+8
| | | | | | | | | | | | | The `TunnelId*` types will be reused in the relay reactor (exit relays need to have the concept of a "tunnel ID" because of conflux). Now the `relay::reactor` module only has a single import from `client` (for the `unwrap_or_shutdown` helper, which we should be able to remove soon). From now, we will avoid importing anything from `client` in the `relay` module, and instead prefer refactoring the code as needed (to pull the implementation-agnostic parts outside of `client`). This commit has no functional changes, just code motion.
* proto: Add a circuit module shared between client and relay impls.Gabriela Moldovan2025-08-289-74/+20
| | | | | | | 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.
* Merge branch 'relay-chan-msg' into 'main'gabi-2502025-08-281-31/+72
|\ | | | | | | | | proto: Add a new RelayCircChanMsg message subclass. See merge request tpo/core/arti!3198
| * proto: Avoid referring to restricted ChanMsgs as "subclasses".Gabriela Moldovan2025-08-281-5/+5
| |
| * proto: Add a new RelayCircChanMsg message subclass.Gabriela Moldovan2025-08-281-0/+43
| | | | | | | | | | This will be used to restrict the types of messages that can be sent on the relay-specific channels.
| * proto: Derive ChanMsgSubclass for CreateResponse, ClientCircChanMsg.Gabriela Moldovan2025-08-271-32/+5
| | | | | | | | | | This enables us to remove the open-coded implementations in favor of the derived version.
| * proto: Add d-d macro for creating AnyChanMsg subclasses.Gabriela Moldovan2025-08-271-1/+26
| | | | | | | | | | | | The code for generating these is repetitive (see `CreateResponse` and `ClientChanMsg`), and we will soon need a `RelayChanMsg` type too, so now is a good time to introduce a helper for generating the boilerplate.
* | tor-proto: don't allow consecutive XOFF messagesSteven Engler2025-08-271-1/+14
|/
* Merge branch 'arti-p112-docs' into 'main'David Goulet2025-08-213-0/+40
|\ | | | | | | | | proto: tweak docs to say where the prop349 checks are implemented See merge request tpo/core/arti!3171
| * proto: Indent line in docs to satisfy clippy.Gabriela Moldovan2025-08-211-1/+1
| |
| * proto: Add prop349 note about the resolve stream handler.Gabriela Moldovan2025-08-201-0/+14
| |
| * proto: Document how handle_meta_cell can cause circuit teardown.Gabriela Moldovan2025-08-201-0/+14
| |
| * proto: Add docs about the lifecycle of MetaCellHandlers.Gabriela Moldovan2025-08-201-0/+12
| |
* | 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]>
* tor-proto: add comments to `CC_XOFF_CLIENT`Steven Engler2025-08-181-0/+29
| | | | | | This tries to explain that the amount of incoming data we choose to buffer on an arti stream doesn't really matter for arti's socks proxy, since the amount of data buffered by the kernel is significantly higher.
* misc: cleanup now that `_report!` macros support fieldsSteven Engler2025-08-181-3/+2
|
* tor-proto: report tunnel/channel id as a fieldSteven Engler2025-08-181-2/+2
| | | | This restores the pre-374889d34aa0 behaviour.
* proto: Fix tests post-crate reorg (fmt).Gabriela Moldovan2025-08-182-2/+2
|
* proto: Fix tests post-crate reorg.Gabriela Moldovan2025-08-182-2/+2
|
* proto: Move the `stream` module under `client` (fmt).Gabriela Moldovan2025-08-187-17/+17
|
* proto: Move the `stream` module under `client` (breaking).Gabriela Moldovan2025-08-1818-23/+2801
| | | | | | | | | | | | 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-189-39/+39
|
* proto: Rename the `tunnel` module to `client`.Gabriela Moldovan2025-08-1819-0/+12361
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.