summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | proto: Extend BWD handler with a backward cell handling functionGabriela Moldovan2026-02-112-1/+26
| | |/ / | |/| | | | | | | | | | This will tell the base `BackwardReactor` how to handle the cell.
* | | | arti: Enable tor-hsservice/onion-service-cli-extra when needed (fmt)Gabriela Moldovan2026-02-111-1/+7
| | | |
* | | | arti: Enable tor-hsservice/onion-service-cli-extra when neededGabriela Moldovan2026-02-111-1/+1
|/ / / | | | | | | | | | | | | | | | | | | Without this change `arti` fails to compile with the `onion-service-cli` and `onion-service-service` features enabled. Closes #2347
* | | relay: Fix tor-chanmgr and tor-proto cargo featuresDavid Goulet2026-02-092-3/+3
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | proto: Relay responder channel allow to be non_exhaustiveDavid Goulet2026-02-092-2/+1
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | proto: Add x509 tor-cert featureDavid Goulet2026-02-091-1/+1
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | chanmgr: Fix the outbound_chan_type() to not be based on relay featureDavid Goulet2026-02-091-10/+4
| | | | | | | | | | | | | | | | | | | | | A client can have the relay feature enabled. The presence of "identities" is what dictates if we are a relay or not. Signed-off-by: David Goulet <[email protected]>
* | | chanmgr: Gate relay only functionDavid Goulet2026-02-092-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also, allow the `ChanMgr::runtime` to be unused as client don't use it yet but might one day. Simpler this way than feature gating it for relay only. Signed-off-by: David Goulet <[email protected]>
* | | chanmgr: Add inbound open channel to our listDavid Goulet2026-02-092-9/+26
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | chanmgr: Build channel/reactor on incoming connectionsDavid Goulet2026-02-091-6/+74
| | | | | | | | | | | | | | | | | | | | | | | | Implement the accept_from_transport() in the ChanBuilder. This returns a `Channel` and spawns a reactor. Signed-off-by: David Goulet <[email protected]>
* | | proto: Publicly re-export MaybeVerifiableRelayResponderChannelDavid Goulet2026-02-093-0/+5
| | | | | | | | | | | | | | | This type is needed in the tor-chanmgr crate in order to decide to verify or not the underlying relay channel.
* | | relay: Add a TLS acceptor in the ChanBuilderDavid Goulet2026-02-0910-50/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires the `TlsKeyAndCert` so be passed on the TLS acceptor settings. We assume that `RelayIdentities` has this information. The ChanBuilder::new() was getting a bit too convoluted and feature gated to instead we introduce new_client() and new_relay() and remove the need for `with_identities()`. Because of this, the ChanMgr::new() now returns a `Result<>`. Related to #1597 Signed-off-by: David Goulet <[email protected]>
* | | relay: Enable "tls-server" feature flag for tor-rtcompatDavid Goulet2026-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | This makes it that we can get a server TLS acceptor provider which we need for incoming connections. Signed-off-by: David Goulet <[email protected]>
* | | Merge branch 'cargo-metadata-all-features' into 'main'Nick Mathewson2026-02-0924-0/+72
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Set package.metadata.docs.rs.all-features to true for all crates Closes #2307 See merge request tpo/core/arti!3656
| * | | Set package.metadata.docs.rs.all-features to true for all cratesNiel Duysters2026-02-0924-0/+72
| | | | | | | | | | | | | | | | Makes docs.rs also document types behind optional feature flags.
* | | | Merge branch 'extend2' into 'main'gabi-2502026-02-0913-234/+477
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | proto: Start handling EXTEND2 in the relay reactor Closes #1447 See merge request tpo/core/arti!3648
| * | | | proto: Say why it's okay not to have timeouts in a couple of placesGabriela Moldovan2026-02-091-0/+6
| | | | |
| * | | | proto: Remove the EXTEND2 timeout for nowGabriela Moldovan2026-02-091-26/+11
| | | | | | | | | | | | | | | | | | | | | | | | | See discussion at https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3648#note_3339863
| * | | | proto: Reject EXTEND2 cells even if we already have an extension in progressGabriela Moldovan2026-02-091-1/+12
| | | | |
| * | | | proto: Ensure DESTROY gets sent on circuit dropGabriela Moldovan2026-02-052-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements this part of the spec: ``` To tear down a circuit completely, a relay or client sends a DESTROY cell to the adjacent nodes on that circuit, using the appropriate direction’s circID. ```
| * | | | proto: Make handle_extend2() synchronousGabriela Moldovan2026-02-051-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This doesn't need to be async, as it delegates the handling to a background task.
| * | | | proto: Implement EXTEND2 handlingGabriela Moldovan2026-02-052-152/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To handle EXTEND2, the relay `ForwardHandler` impl spawns a background task, which reports back the result via the `CircEvent` MPSC stream. This stream is polled from the `ForwardReactor` main loop, and each `CircEvent` is passed back to `ForwardHandler::handle_event()` for handling.
| * | | | proto: Move CREATE helpers to a shared moduleGabriela Moldovan2026-02-053-6/+6
| | | | | | | | | | | | | | | | | | | | These will be used by the relay code too (for circuit extension).
| * | | | proto: Reword an error message for clarityGabriela Moldovan2026-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | Users reading the log won't necessarily know what a "forward channel" is.
| * | | | proto: Add BWD command for receiving newly launched outbound channelsGabriela Moldovan2026-02-051-0/+36
| | | | |
| * | | | proto: Give handle_meta_msg() a handle to the runtimeGabriela Moldovan2026-02-053-3/+10
| | | | |
| * | | | proto: Add an implementation-dependent reactor event streamGabriela Moldovan2026-02-054-1/+54
| | | | | | | | | | | | | | | | | | | | | | | | | This will enable us to obtain implementation-dependent asynchronous events (such as the outcome of an extend handshake).
| * | | | proto: Add new LinkspecDecodeErr kindGabriela Moldovan2026-02-051-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be needed by relays, for wrapping tor_linkspec decode errors (which can happen if the link specifiers in the EXTEND2 cell can't be converted to a channel target).
| * | | | proto: Make chan_provider an ArcGabriela Moldovan2026-02-052-3/+4
| | | | | | | | | | | | | | | | | | | | To match the `ChannelProvider::get_or_launch()` function signature.
| * | | | proto: Pass the unique id to Forward handlerGabriela Moldovan2026-02-052-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need the unique_id here, because the Forward handler will soon start using the `ChannelProvider::get_or_launch()` to launch outbound channels, which takes the reactor unique_id as an argument.
| * | | | proto: Move channel provider out of the generic reactorGabriela Moldovan2026-02-054-72/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The channel provider is relay-specific, so I am moving it to the relay `ForwardHandler` implementation. This enables us to get rid of some of the feature gating from the generic reactor.
| * | | | proto: Add Channel function for launching outbound relay circuitsGabriela Moldovan2026-02-051-0/+47
| | | | | | | | | | | | | | | | | | | | This is currently very similar to its client counterpart.
| * | | | proto: Make inner part of OutboundChanSender pub(crate)Gabriela Moldovan2026-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | We will need the ability to build one from within tor-proto.
| * | | | proto: Enable the tor-linkspec/decode feature for relaysGabriela Moldovan2026-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | Needed for handling the linkspecs in an EXTEND2 cell.
| * | | | cell: Add an accessor for the linkspecs of an EXTEND2Gabriela Moldovan2026-02-051-0/+5
| | | | |
| * | | | proto: Fix misleading SendRelayMsg docsGabriela Moldovan2026-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | This was leftover from back when this command was only for Sendmes.
| * | | | proto: Make ChannelProvider::get_or_launch() synchronousGabriela Moldovan2026-02-053-2/+3
| | | | | | | | | | | | | | | | | | | | This just removes an unnecessary `async`.
* | | | | tor-rtcompat: fix clippy warningSteven Engler2026-02-091-0/+1
| | | | |
* | | | | Merge branch 'unnecessary-async' into 'main'David Goulet2026-02-093-2/+3
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | proto: Make ChannelProvider::get_or_launch() synchronous See merge request tpo/core/arti!3647
| * | | | | proto: Make ChannelProvider::get_or_launch() synchronousGabriela Moldovan2026-02-043-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | This just removes an unnecessary `async`.
* | | | | | Merge branch 'feature/cmdline-paths' into 'main'Nick Mathewson2026-02-091-2/+10
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | Allow to set paths in CLI arguments See merge request tpo/core/arti!3556
| * | | | | Expand allowable unquoted syntax for configuration arguments in CLI.carti-it2026-02-091-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | The set of allowable characters now includes colon, dot, slash, and backslash. This makes it a bit more convenient to pass in paths.
* | | | | | Don't log Circuit Closed errors as warningsrobertb2026-02-051-1/+6
| |_|/ / / |/| | | |
* | | | | tor-dirclient: Document retriability of failuresClara Engler2026-02-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | This commit documents the retriability of `RequestFailedError`, following an IRC conversation with nickm.
* | | | | chanmgr: Always use connect target for error reportingDavid Goulet2026-02-041-14/+6
| | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | | | chanmgr: Use the new tor-proto relay channel APIDavid Goulet2026-02-041-43/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With specific types now for relay channels, add a function to build the channel and run the reactor. That function is feature gated and thus relay only. Signed-off-by: David Goulet <[email protected]>
* | | | | proto: Add missing clock_skew() to unverified channelsDavid Goulet2026-02-043-8/+15
| | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | | | proto: Remove unused traits after type refactoringDavid Goulet2026-02-041-73/+0
| | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | | | proto: Make channel client to use a specific typeDavid Goulet2026-02-041-38/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the use of traits, the caller will handle the specific type. Signed-off-by: David Goulet <[email protected]>
* | | | | proto: Relay channel code cleanupDavid Goulet2026-02-041-323/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need for these types, we've replaced them with more specific types. Signed-off-by: David Goulet <[email protected]>