summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | proto: Rename ClientCircSyncView to CircSyncViewGabriela Moldovan2026-02-164-10/+7
| | | | | | | | | | | | | | | | | | | | | | | | | This will soon replace `CircSyncView` wholesale. The preliminary renaming will make the future diffs easier to review.
| * | | | proto: Add an accessor for the CircHopOutbound of a CircHopGabriela Moldovan2026-02-161-0/+5
| | |/ / | |/| | | | | | | | | | This will soon be needed for building a `CircSyncView`.
* | | | Merge branch 'msrv-1.89' into 'main'Nick Mathewson2026-02-16150-110/+173
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Bump MSRV to 1.89 See merge request tpo/core/arti!3684
| * | | arti-bench: Use is_multiple_of() instead of manual checkGabriela Moldovan2026-02-161-1/+1
| | | | | | | | | | | | | | | | As suggested by clippy
| * | | proto: Use is_multiple_of() as suggested by clippyGabriela Moldovan2026-02-163-3/+3
| | | |
| * | | hashx: Use .is_multiple_of() as recommended by clippyGabriela Moldovan2026-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | I'm applying the clippy suggestion, even though in this case, using `is_multiple_of()` instead of `%` is a bit questionable IMO, because the `% 3` operation can never panic.
| * | | arti-client: Allow collapsible_if in examplesGabriela Moldovan2026-02-161-0/+1
| | | |
| * | | Allow clippy::collapsible_if to triggerGabriela Moldovan2026-02-1669-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `clippy::collapsible_if` started triggering after bumping the MSRV to 1.88. Since this triggers from a lot of places, and since there even are a couple of instances where we explicitly allow `clippy::collapsible_ifs`, I've opened #2342 for deciding what to do about it.
| * | | Bump MSRV from 1.86 to 1.89Gabriela Moldovan2026-02-1673-74/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As agreed at our last team meeting. See https://gitlab.torproject.org/tpo/core/arti/#minimum-supported-rust-version
| * | | Bump time to 0.3.47Gabriela Moldovan2026-02-169-31/+24
| | | | | | | | | | | | | | | | | | | | | | | | This enables us to un-ignore RUSTSEC-2026-0009. See #2341 for analysis of impact.
* | | | Merge branch 'cargo-audit-yank' into 'main'Nick Mathewson2026-02-161-2/+2
|\| | | | | | | | | | | | | | | | | | | Update keccak to 1.6 See merge request tpo/core/arti!3682
| * | | Update keccak to 1.6Gabriela Moldovan2026-02-161-2/+2
| |/ / | | | | | | | | | keccak 1.5 was yanked and is causing our `cargo-audit` builds to fail.
* | | Merge branch 'docs-release-move-delete-semver' into 'main'Nick Mathewson2026-02-161-3/+3
|\ \ \ | | | | | | | | | | | | | | | | docs: Move deleting semver.md files before unfreezing tree. See merge request tpo/core/arti!3635
| * | | docs: Move deleting semver.md files before unfreezing tree.Wesley Aptekar-Cassels2026-02-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We frequently have merge conflicts when deleting the semver.md files. While this isn't the end of the world, it's annoying, so I think it's worth making a habit of deleting the semver.md files before unfreezing the tree. This also avoids any problems with inadvertently removing entries that were added after the release was cut.
* | | | Merge branch 'relay-own-cert' into 'main'David Goulet2026-02-164-7/+26
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | relay: Pass our TLS cert to the responder verify process See merge request tpo/core/arti!3665
| * | | | relay: Pass our TLS cert to the responder verify processDavid Goulet2026-02-124-7/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the responder to build the authentication data, it needs its own certificate of the TLS handshake that it is responding to (as a TLS server). This resolves an important TODO(relay) in the code. Signed-off-by: David Goulet <[email protected]>
* | | | | Merge branch 'chan-target-addr' into 'main'David Goulet2026-02-162-2/+33
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | tor-chanmgr: Add additional `get_or_launch()` tests and update doc comment Closes #2344 See merge request tpo/core/arti!3676
| * | | | tor-chanmgr: add doc comment to `ChanMgr::get_or_launch()`Steven Engler2026-02-121-0/+6
| | | | |
| * | | | tor-chanmgr: add `get_or_launch()` tests using different addrsSteven Engler2026-02-121-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | When there are two channel requests with the same identities and different socket addresses, we return the same channel.
* | | | | Merge branch 'error-sources' into 'main'opara2026-02-143-12/+118
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-basic-utils: Add utility to iterate over error sources See merge request tpo/core/arti!3653
| * | | | | arti: Use ErrorSources in extract_proto_errRobert Bartlensky2026-02-141-12/+5
| | | | | |
| * | | | | tor-basic-utils: Add utility to iterate over error sourcesRobert Bartlensky2026-02-142-0/+113
|/ / / / /
* | | | | Merge branch 'ed25519-from' into 'main'wesleyac2026-02-121-0/+42
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-llcrypto: Add `Ed25519Identity::from_base64()` See merge request tpo/core/arti!3667
| * | | | | tor-llcrypto: add `Ed25519Identity::from_base64()`Steven Engler2026-02-101-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is intended to be analogous to `RsaIdentity::from_hex()`. I've found myself wanting this a few times, and it makes it easy to grab a `master-key-ed25519` from the consensus and paste it into the code without needing to do extra conversions.
* | | | | | Merge branch 'nonblocking-rpc-part1' into 'main'Nick Mathewson2026-02-1216-337/+902
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | RPC: Replace backend with nonblocking IO See merge request tpo/core/arti!3644
| * | | | | | rpc: re-run cbindgen to capture new warnings.Nick Mathewson2026-02-121-0/+2
| | | | | | |
| * | | | | | rpc nb: Fix documentation link.Nick Mathewson2026-02-121-1/+1
| | | | | | |
| * | | | | | rpc nb: Capitalize a letterNick Mathewson2026-02-121-1/+1
| | | | | | |
| * | | | | | rpc: Use vec::drain.Nick Mathewson2026-02-121-3/+4
| | | | | | |
| * | | | | | rpc: Flush after write.Nick Mathewson2026-02-121-1/+4
| | | | | | |
| * | | | | | rpc: Handle eintr in NonblockingStream.Nick Mathewson2026-02-121-13/+18
| | | | | | |
| * | | | | | rpc: Add "Io Safety" documentation.Nick Mathewson2026-02-121-2/+31
| | | | | | |
| * | | | | | rpc nb: Documentation improvements from diziet.Nick Mathewson2026-02-121-5/+27
| | | | | | |
| * | | | | | rpc: Clean up pub items in nb_stream.Nick Mathewson2026-02-044-16/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (We don't need as many of these to be public as I had originally thought.)
| * | | | | | RPC: Fix documentation about "readers".Nick Mathewson2026-02-042-10/+14
| | | | | | |
| * | | | | | rpc: Replace llconn backend with nb_stream backend.Nick Mathewson2026-02-048-313/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | All the tests still pass!
| * | | | | | rpc: New nonblocking backend for interacting with streamsNick Mathewson2026-02-044-0/+708
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two levels here. At the lower level, the caller is responsible for providing their own select/poll wrapper. At the higher level, we use mio to provide our own. Before the end of this branch, this new module will replace llconn.
| * | | | | | rpc: Move responsibility for wrapping streams to rpc-client-coreNick Mathewson2026-02-045-32/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be necessary since, in order to make the RPC stuff nonblocking, we'll need a better API than just `Box<dyn Read>` etc.
* | | | | | | Merge branch 'early-relay' into 'main'gabi-2502026-02-129-134/+154
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | proto: Pass *all* cells to handle_forward_cell() Closes #2339 See merge request tpo/core/arti!3674
| * | | | | | Revert "proto: Add a new ToRelayMsg util"Gabriela Moldovan2026-02-128-58/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 04ab3cd848d7977baf58dd64ebfcad6aa54ecb17. Reverted because we no longer need to "peek" into the opaque `CircChanMsg` of a circuit reactor: now the implementation-dependent part of the reactor is in charge of handling the channel messages, and extracting `Relay` objects out of RELAY/RELAY_EARLY cells, which then get processed in the base reactor.
| * | | | | | proto: Remove unused function in relay FWD reactorGabriela Moldovan2026-02-121-7/+1
| | | | | | |
| * | | | | | proto: Move decode_relay_cell() out of ForwardHandlerGabriela Moldovan2026-02-122-43/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't need to be part of the `ForwardHandler` trait anymore, because the base reactor no longer calls it directly (instead implementations are supposed to handle it internally). No functional changes here, just code motion.
| * | | | | | proto: Forbid EXTEND2 from RELAY cellsGabriela Moldovan2026-02-122-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #2339
| * | | | | | proto: Pass the early flag to handle_relay_msg() (fmt)Gabriela Moldovan2026-02-121-1/+3
| | | | | | |
| * | | | | | proto: Pass the early flag to handle_relay_msg()Gabriela Moldovan2026-02-121-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed because some messages are handled differently depending on the cell type they originated from (RELAY vs RELAY_EARLY).
| * | | | | | proto: Return a protocol error if we get too many RELAY_EARLYGabriela Moldovan2026-02-121-1/+20
| | | | | | |
| * | | | | | proto: Overhaul forward cell handlingGabriela Moldovan2026-02-122-21/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pushes the RELAY/REALY_EARLY handling inside `handle_forward_cell()`, which now decodes the relay cells and * handles them internally, if they are unrecognized (`handle_unrecognized_cell()`), or * returns them back to the base reactor if they are recognized (RELAY and RELAY_EARLY cells are handled the same way by the base reactor)
| * | | | | | proto: Give handle_forward_cell() a handle to the hopmgrGabriela Moldovan2026-02-122-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Soon this function will be in charge of decoding the cell too, so it will need a handle to the `HopMgr` (see `decode_relay_cell()`)
| * | | | | | proto: Pass *all* cells to handle_forward_cell()Gabriela Moldovan2026-02-121-6/+3
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the implementation-dependent `handle_forward_cell()` handled all forward cells *except* for RELAY cells, which were handled in the generic base reactor. This changes the implementation to pass *all* cells, including RELAY cells, to `handle_forward_cell()` too. This is needed because both RELAY and RELAY_EARLY cells need to be handled very similarly: both can be either recognized or unrecognized, with unrecognized cells being handled by the implementation-dependent code, and the recognized ones being sent to the base reactor for handling. A future commit will update `handle_forward_cell()` to extract `Relay` object out of RELAY/RELAY_EARLY cells, and return it back to the base reactor for handling.
* | | | | | Merge branch 'channel-canonical' into 'main'David Goulet2026-02-1214-66/+276
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | Implement channel canonicity See merge request tpo/core/arti!3668