| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | tor-proto: Ensure all conflux legs share the same join point stream map. | Gabriela Moldovan | 2025-06-10 | 2 | -6/+49 | |
| | | | | | | | | | I really dislike that we're exposing the stream map this way. Ideally we'd have some way of sharing the stream maps without exposing the `StreamMap` in `reactor::conflux`. Closes #2011 | |||||
| * | tor-proto: Add a TODO about a further refactoring. | Gabriela Moldovan | 2025-06-10 | 1 | -0/+2 | |
| | | ||||||
| * | tor-proto: Fixup CircHop docs post-refactoring. | Gabriela Moldovan | 2025-06-10 | 1 | -5/+6 | |
| | | ||||||
| * | tor-proto: Remove now-addressed TODO. | Gabriela Moldovan | 2025-06-10 | 1 | -4/+0 | |
| | | ||||||
| * | tor-proto: Introduce CircHopList, hide CircHop internals. | Gabriela Moldovan | 2025-06-10 | 3 | -244/+399 | |
| | | | | | Most of this is code motion, I recommend reviewing with `--color-moved`. | |||||
| * | tor-proto: Move CircHop to a separate module. | Gabriela Moldovan | 2025-06-10 | 2 | -163/+187 | |
| | | | | | | | | | | | | | This helps hide the `CircHop` internals, and is the first step towards providing a safer API that aims to reduce contention and prevent deadlocking on the stream map mutex. This change is also in preparation for implementing special handling for the join point of a conflux tunnel (which will involve adding a new `CircHop` API for sharing the stream map of another `CircHop`). I recommend reviewing this diff with `--color-moved`. | |||||
| * | HopSettings: Note relay usage. | Nick Mathewson | 2025-06-10 | 1 | -0/+3 | |
| | | ||||||
| * | Avoid a bug with HopSettings | Nick Mathewson | 2025-06-10 | 2 | -5/+22 | |
| | | | | | | | | When negotiation won't occur, we need to represent the fact by disabling any settings that would depend on negotiation. Otherwise we'll wind up with the client thinking everything was supported, and the relay thinking that nothing is. | |||||
| * | Clarify HopSettings documentation. | Nick Mathewson | 2025-06-10 | 1 | -3/+7 | |
| | | ||||||
| * | Renamed NegotiatedHopSettings -> HopSettings | Nick Mathewson | 2025-06-10 | 4 | -36/+33 | |
| | | ||||||
| * | Clarify documentation for from_params_and_caps. | Nick Mathewson | 2025-06-10 | 1 | -1/+6 | |
| | | ||||||
| * | Clarify per-circuitness of CircParameters | Nick Mathewson | 2025-06-10 | 1 | -1/+7 | |
| | | ||||||
| * | proto: Rename a pair of internal functions | Nick Mathewson | 2025-06-10 | 3 | -16/+14 | |
| | | ||||||
| * | proto: Refactor cc fallback. | Nick Mathewson | 2025-06-10 | 3 | -10/+14 | |
| | | | | | | The fallback CC algorithm is _always_ fixed-window, and we should only use it when the selected CC algorithm is not supported. | |||||
| * | Move responsibility for choosing extensions into tor-proto | Nick Mathewson | 2025-06-10 | 2 | -6/+16 | |
| | | | | | | | | | | Now tor-circmgr no longer needs to check which Protover capabilities are enabled, or construct a separate CircParameters for each hop. Instead, tor-proto decides whether to use the fallback CC mode, based on whether the target supports FLOWCTRL_CC. Closes #1967. | |||||
| * | proto: Move NegotiatedHopSettings to a higher level | Nick Mathewson | 2025-06-10 | 5 | -59/+72 | |
| | | | | | | | We will construct this object based on the circuit parameters _and_ on the target's supported protocol versions, so we need to do so when we have both pieces of info. | |||||
| * | proto: Split CircParameters and NegotiatedHopSettings | Nick Mathewson | 2025-06-10 | 6 | -32/+65 | |
| | | | | | | | | | | | | One type will now represent _the kind of hop we are asking tor-proto to negotiate_; the other will represent _the state of such negotiation_. This doesn't simplify the code much yet, but it will be helpful as we add more and more negotiable settings. Part of #1967 | |||||
| * | tor-proto: handle XON/XOFF messages in conflux seqno logic | Steven Engler | 2025-06-09 | 1 | -1/+2 | |
| | | ||||||
| * | tor-proto: fix bug in `RateLimitedWriter::poll_write` | Steven Engler | 2025-06-08 | 2 | -16/+100 | |
| | | | | | | | Previously it did not behave correctly when `bucket.max()` was 0 (it would sleep for 0 time instead of infinitely, triggering a debug assertion). | |||||
| * | tor-proto: change `wake_when_bytes_available` to `NonZero<u64>` | Steven Engler | 2025-06-08 | 2 | -6/+8 | |
| | | ||||||
| * | tor-proto: add additional unit test for `TokenBucket::adjust` | Steven Engler | 2025-06-08 | 1 | -1/+57 | |
| | | ||||||
| * | tor-proto: improve `TokenBucket::adjust` | Steven Engler | 2025-06-08 | 1 | -42/+87 | |
| | | | | | The token bucket is now refilled before changing the rate. | |||||
| * | tor-proto: rename `TokenBucket::last_refill` to `added_tokens_at` | Steven Engler | 2025-06-08 | 1 | -18/+18 | |
| | | ||||||
| * | tor-proto: return `Result` from `tokens_available_at` | Steven Engler | 2025-06-05 | 2 | -32/+66 | |
| | | ||||||
| * | tor-proto: change `RateLimitedWriter` logic to use user-configurable limit | Steven Engler | 2025-06-05 | 2 | -16/+50 | |
| | | | | | The user now sets a constant amount of bytes to wait for. | |||||
| * | tor-proto: change `ClaimedTokens::commit_fewer` to `reduce` | Steven Engler | 2025-06-05 | 2 | -21/+14 | |
| | | ||||||
| * | tor-proto: add `{TokenBucket,RateLimitedWriter}Config` types | Steven Engler | 2025-06-05 | 3 | -33/+110 | |
| | | ||||||
| * | tor-proto: add token bucket test for token/duration calc | Steven Engler | 2025-06-05 | 1 | -0/+64 | |
| | | ||||||
| * | tor-proto: add missing doc comment to `DataWriter::writer` | Steven Engler | 2025-06-05 | 1 | -0/+1 | |
| | | ||||||
| * | tor-proto: pass the time provider to the `DataWriter` | Steven Engler | 2025-06-05 | 3 | -11/+28 | |
| | | ||||||
| * | tor-proto: update doc comments for `DataWriter{,Inner}` | Steven Engler | 2025-06-05 | 1 | -21/+25 | |
| | | | | | | Unfortunately the git diff thinks I moved the struct, but I really only moved the comment. | |||||
| * | tor-proto: rename `DataWriter` | Steven Engler | 2025-06-05 | 1 | -14/+32 | |
| | | | | | | `DataWriter` -> `DataWriterInner` `DataWriterNew` -> `DataWriter` | |||||
| * | tor-proto: add (what will be) the new `DataWriter` | Steven Engler | 2025-06-05 | 1 | -0/+44 | |
| | | ||||||
| * | tor-proto: add a `RateLimitedWriter` | Steven Engler | 2025-06-05 | 2 | -0/+328 | |
| | | ||||||
| * | tor-proto: add a `TokenBucket` | Steven Engler | 2025-06-05 | 3 | -0/+612 | |
| | | ||||||
| * | De-duplicate circuit ntorv3 extension generation code. | Nick Mathewson | 2025-06-04 | 2 | -61/+40 | |
| | | | | | Closes #1969. | |||||
| * | *: suppress cognitive_complexity warnings from nightly | Nick Mathewson | 2025-05-29 | 1 | -0/+3 | |
| | | | | | | | | | | | | | | Apparently clippy nightly is better (or worse?) about detecting complex functions than before, so I'm suppressing these warnings where they occur. I have mixed feelings about these warnings: On the plus side, they really do help to detect functions that are twistier than they need to be. On the minus side, they get confused by tracing macros, and the "allows" do pile up. But on the plus side, those "allows" do provide a way to find functions that need to be refactored, and they are never uglier than the functions they decorate. | |||||
| * | tor-proto: Remove already addressed TODO. | Gabriela Moldovan | 2025-05-28 | 1 | -3/+0 | |
| | | | | | | There's already a check right above the TODO that does what the TODO asks. | |||||
| * | tor-proto: Make Path::all_hops() return an iterator. | Gabriela Moldovan | 2025-05-28 | 3 | -15/+13 | |
| | | | | | This addresses one of the TODOs from `reactor::conflux`. | |||||
| * | tor-proto: Downgrade a few TOOD(conflux) to TODO. | Gabriela Moldovan | 2025-05-28 | 2 | -3/+3 | |
| | | ||||||
| * | tor-proto: Replace TODO(conflux) with TODO(#2017). | Gabriela Moldovan | 2025-05-28 | 1 | -1/+1 | |
| | | | | | | This is not a MUST for client-side conflux, so I'm filing it as tech debt. | |||||
| * | tor-proto: Add missing feature-gating to HopDetail::Virtual. | Gabriela Moldovan | 2025-05-28 | 1 | -0/+1 | |
| | | ||||||
| * | tor-proto: Avoid comparing virtual hops for now. | Gabriela Moldovan | 2025-05-28 | 1 | -17/+22 | |
| | | | | | | | We don't have a way to compare virtual hops (see #2016), and we don't yet support onion service conflux (see #2002), so let's defer this for now. | |||||
| * | tor-proto: Downgrade a TODO(conflux) to TODO. | Gabriela Moldovan | 2025-05-28 | 1 | -1/+1 | |
| | | | | | This is tech debt, and is not a MUST for conflux. | |||||
| * | tor-proto: Replace TOOD(conflux) with TODO(#1999). | Gabriela Moldovan | 2025-05-28 | 1 | -1/+1 | |
| | | | | | | We can tackle this later, after we finish addressing all the remaining `TODO(conflux)`. | |||||
| * | proto: remove bench pub wrappers | Lionel Goffaux | 2025-05-22 | 6 | -285/+85 | |
| | | ||||||
| * | Merge branch 'extend_ntor-fix' into 'main' | Nick Mathewson | 2025-05-21 | 1 | -1/+1 | |
| |\ | | | | | | | | | | | | | tor-proto: Prevent sink and rx from being dropped in-place. Closes #2005 See merge request tpo/core/arti!3005 | |||||
| | * | tor-proto: Prevent sink and rx from being dropped in-place. | Gabriela Moldovan | 2025-05-20 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | | | This was supposed to be fixed in 164d6b4d6c5, but that change failed to bind `sink` and `rx in `futures::join!`, causing `sink` and `rx` to get dropped, which would, in turn, cause the channel and circuit reactors to shut down, sometimes leading to intermittent failures (#2005). Closes #2005 | |||||
| * | | tor-proto: Add TODO about multipath rend circuits. | Gabriela Moldovan | 2025-05-20 | 1 | -0/+6 | |
| | | | ||||||
| * | | tor-proto: Clarify that we need HopLocation, not TargetHop. | Gabriela Moldovan | 2025-05-20 | 1 | -2/+2 | |
| | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3002#note_3200935 | |||||
