summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'relay-bin-3' into 'main'opara2025-01-152-21/+2
|\ \ | | | | | | | | | | | | arti-relay: remove 'override_net_params' config See merge request tpo/core/arti!2709
| * | arti-relay: remove 'override_net_params' configSteven Engler2025-01-142-21/+2
| | | | | | | | | | | | | | | | | | | | | We think that for relays, the 'override_net_params' config option is overly broad and a footgun. We can always re-add this back later if we want to, but for now the focus will be on exposing specific config options for features that are okay to be changed by users.
* | | Merge branch 'kist-socks' into 'main'gabi-2502025-01-1534-46/+431
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | tor-proto: Initial KIST support (Linux-only) Closes #1728, #1729, and #1730 See merge request tpo/core/arti!2706
| * | tor-chanmgr: Update NetParamsExtract docs (fmt).Gabriela Moldovan2025-01-151-1/+2
| | |
| * | tor-chanmgr: Update NetParamsExtract docs.Gabriela Moldovan2025-01-151-4/+1
| | | | | | | | | | | | | | | This also removes the TODO that was addressed by adding the kist params to this type.
| * | tor-chanmgr: Move KIST and padding params to ChannelParams.Gabriela Moldovan2025-01-151-11/+22
| | |
| * | tor-proto: Remove dependency on tor-netdir.Gabriela Moldovan2025-01-156-50/+51
| | | | | | | | | | | | | | | | | | | | | | | | This moves the `NetParameters -> KistParams` conversion to `tor-chanmgr`. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2706#note_3147557
| * | tor-chanmgr: Add a TODO about a possible renaming.Gabriela Moldovan2025-01-151-0/+3
| | |
| * | tor-proto: Replace constants with caret_int.Gabriela Moldovan2025-01-153-3/+16
| | |
| * | tor-rtcompat: Rename UnsupportedStreamOps to NoOpStreamOpsHandle (fmt).Gabriela Moldovan2025-01-153-5/+5
| | |
| * | tor-rtcompat: Rename UnsupportedStreamOps to NoOpStreamOpsHandle.Gabriela Moldovan2025-01-155-9/+9
| | | | | | | | | | | | | | | This renames UnsupportedStreamOpsHandle to NoOpStreamOpsHandle for clarity (the old name kind of sounded like the name of an error type).
| * | tor-async-utils: Fix type inference in test.Gabriela Moldovan2025-01-151-1/+2
| | |
| * | tor-changmgr: Update the KIST params whenever the consensus/config changes.Gabriela Moldovan2025-01-151-8/+34
| | | | | | | | | | | | Closes #1730, #1728
| * | tor-chanmgr: Add reparameterize_kist to AbstractChannel trait.Gabriela Moldovan2025-01-155-0/+22
| | | | | | | | | | | | | | | Needed for the chanmgr to be able to update existing channels with new KIST settings read from the consensus.
| * | tor-proto: Set kist params in channel reactor.Gabriela Moldovan2025-01-152-2/+33
| | |
| * | tor-proto: Add Channel::reparameterize_kist() API.Gabriela Moldovan2025-01-151-0/+9
| | | | | | | | | | | | | | | This will enable us to update the channel's KIST configuration whenever there is a change in the consensus or config.
| * | tor-proto: Add CtrlMsg for setting kist options (fmt).Gabriela Moldovan2025-01-151-1/+3
| | |
| * | tor-proto: Add CtrlMsg for setting kist options.Gabriela Moldovan2025-01-151-1/+8
| | |
| * | tor-rtcompat: Fix doc warning.Gabriela Moldovan2025-01-151-1/+1
| | |
| * | tor-proto: Pass a StreamOps handle to the channel reactor.Gabriela Moldovan2025-01-153-2/+16
| | |
| * | tor-rtcompat: Big invasive change adding StreamOps bound everywhere.Gabriela Moldovan2025-01-1511-21/+34
| | | | | | | | | | | | | | | | | | This is unfortunately necessary, because after the channel handshake, we need to give the channel reactor a `StreamOps` handle to the underlying stream.
| * | tor-rtcompat: Implement StreamOps for TLS stream types.Gabriela Moldovan2025-01-152-1/+22
| | |
| * | tor-rtmock: Implement StreamOps for MockTlsStream (fmt).Gabriela Moldovan2025-01-151-1/+3
| | |
| * | tor-rtmock: Implement StreamOps for MockTlsStream.Gabriela Moldovan2025-01-151-1/+14
| | | | | | | | | | | | | | | We're about to add a trait bound that forces `MockTlsStream` to impl `StreamOps`.
| * | tor-rtcompat: Implement StreamOps for Framed.Gabriela Moldovan2025-01-153-0/+15
| | |
| * | tor-rtcompat: Implement new_handle() using TcpSockFd (fmt).Gabriela Moldovan2025-01-151-1/+3
| | |
| * | tor-rtcompat: Implement new_handle() using TcpSockFd.Gabriela Moldovan2025-01-154-3/+16
| | |
| * | tor-rtcompat: Add the ability to get a StreamOps handle.Gabriela Moldovan2025-01-158-1/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for cases where we wrap an object that implements `StreamOps` in an external type, thereby losing access to the `StreamOps` functionality. For example, during the channel handshake, we `.split()` the stream that implements `StreamOps`, which leaves us with a `SplitSink` and a `SplitStream`, neither of which implement `StreamOps`. Getting a handle to the underlying object that implements `StreamOps` (for example, a file handle) *before* the stream is `.split()` enables us to use `StreamOps` to manipulate the underlying split stream. This commit also introduces a special `UnsupportedStreamOpsHandle`, which is a type that implements `StreamOps`, but always returns an error. This type is meant to simplify error handling and usage, and is meant to be used in cases where `StreamOps` is not supported. TODO: the name of this type is pretty confusing (it's very similar to `UnsupportedStreamOp`, which is an error type), and should probably be renamed to something else (`NoOpStreamOpsHandle`, `BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...). Note: this changes the `StreamOps` trait to be slightly different from what I originally envisioned in !2660 and #1769
| * | Cargo.toml: Topologically sort the dependencies.Gabriela Moldovan2025-01-151-2/+2
| | | | | | | | | | | | tor-proto now depends on tor-netdir.
| * | tor-proto: Add KistParams type built from NetParameters.Gabriela Moldovan2025-01-154-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | Note: this commit makes `tor-proto` depend on `tor-netdir` (because it adds a `KistParams` type that is buildable from `NetParameters`, which is defined in `tor-netdir`). Closes #1729
| * | tor-netdir: Add KIST consensus params.Gabriela Moldovan2025-01-151-0/+26
|/ / | | | | | | | | | | These are tentative, so I haven't added them to param-spec yet. Part of #1729
* | Merge branch 'circ-test' into 'main'Ian Jackson2025-01-154-10/+118
|\ \ | | | | | | | | | | | | tor-rtmock: Fix task lists when panicking due to stall and tasks unstick each other in Drop See merge request tpo/core/arti!2682
| * | tor-rtmock: drop_reentrancy test: Run under miri tooIan Jackson2025-01-151-8/+14
| | |
| * | tor-rtmock: Explicitly manage the lifetime of the futureIan Jackson2025-01-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if r is Pending, `fut` is moved out of (stored in `task.fut`), whereas if r is Ready, it is retained and then dropped at the end of the loop iteration. This is quite subtle, and involves `fut` being in a "maybe moved out of" state (which cannot be represented in Rust's surface type system) after the block with the `data` lock. Let's write code that more clearly ensures that the compiler DTRT.
| * | tor-rtmock: Add a test case for Future drop entrancyIan Jackson2025-01-151-0/+34
| | | | | | | | | | | | | | | This passes right now, but only because the lifetime of the `fut` variable in `execute_until_first_stall` happens to be right.
| * | tor-rtmock: Avoid misleading task dumps by careful drop sequencingIan Jackson2025-01-151-9/+34
| | |
| * | tor-rtmock: Add some more tracing / debug outputIan Jackson2025-01-151-1/+9
| | |
| * | tor-rtmock: Explain a difficulty with test trace outputIan Jackson2025-01-151-0/+5
| | |
| * | tor-proto: Add traced_test to test casesIan Jackson2025-01-153-0/+23
|/ / | | | | | | (We don't add it to the handful of unit tests that don't use an executor.)
* | Merge branch 'mistrust-fileaccess' into 'main'Nick Mathewson2025-01-143-92/+518
|\ \ | |/ |/| | | | | | | | | fs-mistrust: Facilities for file access Closes #1746 See merge request tpo/core/arti!2707
| * file_access: Refactor APIs to consume self.Nick Mathewson2025-01-141-7/+16
| | | | | | | | | | This approach makes it even less likely for people to store a FileAccess for repeated use.
| * file_access: Make link-following behavior explicitly controlled.Nick Mathewson2025-01-141-8/+38
| |
| * Documentation fixes from GabiNick Mathewson2025-01-141-5/+3
| |
| * fs-mistrust: Try more to explain what FileAccess is for.Nick Mathewson2025-01-141-3/+7
| |
| * fs-mistrust: Follow symlinks when using file-access outside a CheckedDir.Nick Mathewson2025-01-141-9/+98
| | | | | | | | | | | | When we're not bound to a CheckedDir, it doesn't make sense to forbid following symlinks, so long as their targets are also sensible.
| * fs-mistrust: Add FileAccess for Verifier (and Mistrust).Nick Mathewson2025-01-142-9/+42
| |
| * fs-mistrust: Have Verifier check methods take self by reference.Nick Mathewson2025-01-141-2/+2
| | | | | | | | There is no reason for these to consume self.
| * fs-mistrust: Add ability to create files with chosen mode.Nick Mathewson2025-01-141-10/+117
| |
| * fs-mistrust: Clean up documentation.Nick Mathewson2025-01-141-15/+13
| |
| * fs-mistrust: Move file access methods on CheckedDir to FileAccess.Nick Mathewson2025-01-142-69/+168
| | | | | | | | | | These are the methods which we'd like to give new options in #1746; we can move other methods later if we want to.