| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | | | Merge branch 'reactor-stuff' into 'main' | David Goulet | 2025-01-30 | 10 | -760/+1187 | |
| |\ \ \ | |/ / |/| | | | | | | | | tor-proto: Rewrite circuit reactor run_once() loop to use select!. See merge request tpo/core/arti!2747 | |||||
| | * | | tor-proto: Remove outdated docs about AsyncMutex use. | Gabriela Moldovan | 2025-01-30 | 1 | -7/+0 | |
| | | | | ||||||
| | * | | tor-proto: Remove unnecessary time_prov argument. | David Goulet | 2025-01-30 | 1 | -28/+17 | |
| | | | | ||||||
| | * | | tor-proto: Remove unnecessary Mutex around chan_sender. | David Goulet | 2025-01-30 | 1 | -44/+20 | |
| | | | | ||||||
| | * | | tor-proto: Resolve clippy warning about mut refs in debug_assert. | Gabriela Moldovan | 2025-01-29 | 1 | -6/+7 | |
| | | | | | | | | | | | | | | | | | | | It's unclear to me why this warning didn't fire before! The the circuit reactor had this exact same `debug_assert` prior to the refactoring, taking a mutable reference to the `StreamMap`. | |||||
| | * | | tor-proto: Add a clippy allow and corresponding TODO. | Gabriela Moldovan | 2025-01-29 | 1 | -0/+1 | |
| | | | | ||||||
| | * | | tor-proto: Remove now-unused Reactor::send_outbound(). | Gabriela Moldovan | 2025-01-29 | 1 | -74/+0 | |
| | | | | | | | | | | | | | This is now handled in `Reactor::ready_streams_iterator()`. | |||||
| | * | | tor-proto: Remove old Reactor::run_once(). | Gabriela Moldovan | 2025-01-29 | 1 | -66/+0 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is replaced by the new `Reactor::run_once()` impl. Note: this removal is in a separate commit to make the diff of the refactoring commits easier to review (the diff between the old and the new impl is not meaningful because the new impl is practically a rewrite). | |||||
| | * | | tor-proto: Remove now-unused CellStatus enum. | Gabriela Moldovan | 2025-01-29 | 1 | -9/+0 | |
| | | | | | | | | | | | | | This is replaced by `Option<RunOnceCmdInner>`. | |||||
| | * | | tor-proto: Rewrite circuit reactor run_once() loop to use select! (fmt). | Gabriela Moldovan | 2025-01-29 | 2 | -27/+29 | |
| | | | | ||||||
| | * | | tor-proto: Rewrite circuit reactor run_once() loop to use select!. | Gabriela Moldovan | 2025-01-29 | 9 | -210/+653 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This rewrites the circuit reactor main loop to use `select_biased!` to poll multiple futures simultaneously. The new `run_once()`, like the old, first waits for an initial `CtrlMsg::Create`. Then, it uses a `select_biased!` to poll the `chan_sender` sink and shutdown channel for readiness. When the channel sink is ready, we poll the `control` and `input` channels like before, as well as the new `ready_streams` `Stream` (`ready_streams` is a `futures::Stream` that replaces the previous `send_outbound()` function). Most of the implementation remains unchanged, except the `handle_input`, `handle_cell` and `handle_control` functions no longer send anything on the `chan_sender` channel. Instead, they may do some (synchronous) processing, and send instructions for the remaining work that needs to be done (for example, for writing the cell to the `chan_sender` channel). These instructions are handled at the end of `run_once()`, and are encoded in the `RunOnceCmdInner` enum. What this change does **not** do: * the control channel *still* bypasses congestion control. We could fix this by making the various reactor functions send the `RunOnceCmdInner` commands to `run_once()` via a channel (instead of returning them). This would enable the reactor to stop reading the commands (except for handle `Sendme`, which would be handled separately) if it's blocked on congestion control. | |||||
| | * | | tor-proto: Use SendRelayCell within CtrlMsg::SendRelayCell. | Gabriela Moldovan | 2025-01-29 | 3 | -8/+8 | |
| | | | | ||||||
| | * | | tor-proto: Add enums for representing run_once() commands. | Gabriela Moldovan | 2025-01-29 | 1 | -0/+104 | |
| | | | | ||||||
| | * | | tor-proto: Move SendMsgAndInstallHandler handling to a separate function. | Gabriela Moldovan | 2025-01-29 | 1 | -13/+24 | |
| | | | | ||||||
| | * | | tor-proto: Move the CircuitExtender to a separate module. | Gabriela Moldovan | 2025-01-29 | 2 | -266/+295 | |
| | | | | ||||||
| | * | | tor-proto: Move CtrlMsg to its own module. | Gabriela Moldovan | 2025-01-29 | 2 | -181/+209 | |
| | | | | | | | | | | | | | No functional changes, just code motion. | |||||
| | * | | tor-async-utils: Make SometimesUnboundedSink::send_unbounded() pub(crate). | Gabriela Moldovan | 2025-01-29 | 1 | -2/+1 | |
| | | | | | | | | | | | | | | | | We are about to use this in the circuit reactor (instead of `pollish_send_unbounded`). | |||||
| * | | | fix: fix typos | Dimitris Apostolou | 2025-01-30 | 14 | -20/+20 | |
| | |/ |/| | ||||||
| * | | Merge branch 'rpc-docs-1' into 'main' | Nick Mathewson | 2025-01-30 | 2 | -20/+104 | |
| |\ \ | | | | | | | | | | | | | | | | | | | Improve and write a bunch of RPC documentation Closes #1520, #1527, and #1296 See merge request tpo/core/arti!2748 | |||||
| | * | | tweak cbindgen documentation. | Nick Mathewson | 2025-01-29 | 2 | -4/+9 | |
| | | | | ||||||
| | * | | rpclib: Update cbindgen documentation. | Nick Mathewson | 2025-01-29 | 2 | -17/+96 | |
| | |/ | ||||||
| * | | rpclib: Rename ConnPtSource to ConnPtOrigin. | Nick Mathewson | 2025-01-29 | 1 | -11/+11 | |
| | | | ||||||
| * | | rpclib: Rename WithinDir.{expanded => file}. | Nick Mathewson | 2025-01-29 | 1 | -3/+6 | |
| | | | ||||||
| * | | rpclib: Move from_env_string_elt onto SearchLocation. | Nick Mathewson | 2025-01-29 | 1 | -4/+6 | |
| | | | ||||||
| * | | rpclib: Implement accessors for ConnectFailure | Nick Mathewson | 2025-01-29 | 3 | -3/+23 | |
| | | | ||||||
| * | | rpclib: Implement Display for ConnPtDescription | Nick Mathewson | 2025-01-29 | 1 | -4/+51 | |
| | | | ||||||
| * | | rpclib: New combined error type for RPC connect failures. | Nick Mathewson | 2025-01-29 | 3 | -9/+52 | |
| | | | | | | | | | | | This type explains where every error came from, and explains why each declined connect point was declined. | |||||
| * | | rpclib: Pipe connect-point locations through our loading process. | Nick Mathewson | 2025-01-29 | 1 | -22/+77 | |
| | | | ||||||
| * | | rpclib: Keep track of where each SearchEntry comes from. | Nick Mathewson | 2025-01-29 | 1 | -24/+91 | |
| |/ | | | | Subsequent commits will pipe this information forward to our errors. | |||||
| * | rpcserver: Remove a stale TODO. (RpcMgr works.) | Nick Mathewson | 2025-01-28 | 1 | -2/+0 | |
| | | ||||||
| * | rpcserver: Remove stale TODO about authentication | Nick Mathewson | 2025-01-28 | 1 | -3/+0 | |
| | | | | | (This TODO dates back to the point before we had sessions.) | |||||
| * | rpcserver: Improve conversion of authentication error. | Nick Mathewson | 2025-01-28 | 2 | -7/+14 | |
| | | ||||||
| * | rpc: Remove auth:query. | Nick Mathewson | 2025-01-28 | 1 | -53/+0 | |
| | | | | | | Nothing uses it; its role in negotiation has been replaced by the connect-point design. | |||||
| * | rpcserver: Remove a stale TODO about ConnectionId. | Nick Mathewson | 2025-01-28 | 1 | -3/+0 | |
| | | | | | Other parts of the crate no longer look at the .0 field directly. | |||||
| * | Merge branch 'rpc-references-cleanup' into 'main' | Nick Mathewson | 2025-01-28 | 6 | -183/+204 | |
| |\ | | | | | | | | | rpc: Move support for weak references behind an experimental feature See merge request tpo/core/arti!2742 | |||||
| | * | rpc: Move support for weak references behind an experimental feature | Nick Mathewson | 2025-01-27 | 6 | -183/+204 | |
| | | | | | | | | | | | We haven't decided how these should work (see #868), so having them present by default is a bad idea. | |||||
| * | | Merge branch 'tor-rpc-connect-todos' into 'main' | Nick Mathewson | 2025-01-28 | 7 | -70/+106 | |
| |\ \ | | | | | | | | | | | | | tor-rpc-connect: Address remaining "TODO RPC" notes. See merge request tpo/core/arti!2743 | |||||
| | * | | fs-mistrust: document that follow_final_links is not insecure | Nick Mathewson | 2025-01-28 | 1 | -0/+4 | |
| | | | | | | | | | | | | | | | | Since it makes an exception, we need to be clear about the exceptions that it _doesn't_ make. | |||||
| | * | | fs-mistrust: link to documentation about "obeying constraints" | Nick Mathewson | 2025-01-28 | 1 | -5/+5 | |
| | | | | | | | | | | | | | | | | | | | Since "obeying the constraints of a FileAccess" is a term of art, this commit introduces links from the places where it is used to the place where it is defined. | |||||
| | * | | rpc-connect: Remove remaining TODO RPCs | Nick Mathewson | 2025-01-27 | 1 | -4/+1 | |
| | | | | | | | | | | | | | I have checked the relevant code, and it seems okay. | |||||
| | * | | rpc-connect: Make Connect::validate more straightforward | Nick Mathewson | 2025-01-27 | 1 | -11/+12 | |
| | | | | ||||||
| | * | | rpc-connect: check that all paths inside a connpt are absolute. | Nick Mathewson | 2025-01-27 | 1 | -13/+49 | |
| | | | | ||||||
| | * | | rpc-connect: remove todo; confirm that we do want to mkdir. | Nick Mathewson | 2025-01-27 | 1 | -1/+1 | |
| | | | | ||||||
| | * | | rpc-connect: Detect and decline connpts with invalid "auth" feields | Nick Mathewson | 2025-01-27 | 3 | -20/+18 | |
| | | | | ||||||
| | * | | rpc-connect: Abort on misformed cookie file, and explain why. | Nick Mathewson | 2025-01-27 | 1 | -6/+3 | |
| | | | | ||||||
| | * | | rpc-connect: Use file_access() API, and permit symlinks. | Nick Mathewson | 2025-01-27 | 2 | -17/+20 | |
| | |/ | ||||||
| * | | tor-proto: Use SENDME_TAG_LEN constant instead of magic value. | Gabriela Moldovan | 2025-01-28 | 2 | -7/+8 | |
| | | | ||||||
| * | | tor-proto: Use CircTag::try_from for clarity. | Gabriela Moldovan | 2025-01-28 | 2 | -7/+12 | |
| | | | ||||||
| * | | tor-proto: Use CircTag instead of raw byte slice. | Gabriela Moldovan | 2025-01-28 | 2 | -7/+6 | |
| | | | ||||||
| * | | tor-proto: Move stream msg delivery to a separate function (fmt). | Gabriela Moldovan | 2025-01-28 | 1 | -33/+32 | |
| | | | ||||||
