aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-relay/src
Commit message (Collapse)AuthorAgeFilesLines
...
* relay: Get rid of start_task() for readabilityDavid Goulet2026-02-232-22/+10
| | | | Signed-off-by: David Goulet <[email protected]>
* relay: Generate relay identities at initDavid Goulet2026-02-232-7/+17
| | | | Signed-off-by: David Goulet <[email protected]>
* relay: Implement a helper to build RelayIdentitiesDavid Goulet2026-02-231-6/+107
| | | | | | | This required to add a slight helper to our tor-key-forge RSA key d-d macro to access the inner keypair. This avoids a clone. Signed-off-by: David Goulet <[email protected]>
* relay: Remove unused ephemeral keystoreDavid Goulet2026-02-231-5/+1
| | | | Signed-off-by: David Goulet <[email protected]>
* relay: Move try_generate_keys() into crypto taskDavid Goulet2026-02-232-39/+29
| | | | | | | Move rotating keys into a function so we can use it in try_generate_keys() that is used at startup. Signed-off-by: David Goulet <[email protected]>
* relay: Add a crypto task for key rotationDavid Goulet2026-02-233-1/+183
| | | | | | | | | | | | | This task crypto module has a rotate key task that is in charge of rotating keys from our KeyMgr based on the valid until. To do so, we add a RotatableKeySpec trait to help us specify our to rotate a specific key. Allows us to have a generic rotate/generate function for all our keys. Task runs every 60 seconds. Taken from C-tor. Signed-off-by: David Goulet <[email protected]>
* Allow clippy::collapsible_if to triggerGabriela Moldovan2026-02-161-0/+1
| | | | | | | | | `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.
* relay: Add a TLS acceptor in the ChanBuilderDavid Goulet2026-02-091-7/+10
| | | | | | | | | | | | | | | 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]>
* arti-relay: launch the client's background tasksSteven Engler2026-02-032-9/+41
|
* arti-relay: rename 'bootstrap()' method to 'init()'Steven Engler2026-02-032-7/+8
| | | | This method won't really be used for bootstrapping anymore.
* arti-relay: remove old TODOSteven Engler2026-02-031-10/+0
| | | | See https://gitlab.torproject.org/tpo/core/arti/-/issues/2329
* arti-relay: move code into a "client" objectSteven Engler2026-02-033-64/+129
|
* arti-relay: Allow clippy_unused_asyncGabriela Moldovan2026-01-271-0/+1
| | | | The code here is still WIP, no need to apply the lint yet.
* maint/add_warning: Run script to add new warningGabriela Moldovan2026-01-271-0/+1
| | | | This adds the lint to all our crates.
* Merge branch 'ticket1599_03' into 'main'David Goulet2026-01-224-7/+33
|\ | | | | | | | | proto: Implement relay responder handshake and finalize it for both handshakes See merge request tpo/core/arti!3596
| * relay: Pass advertised addresses to the channel handlerDavid Goulet2026-01-224-7/+33
| | | | | | | | | | | | | | | | | | | | | | We need the advertised addresses for the NETINFO cell when opening a relay channel. Keep them in the TorRelay object so we can pass them to the ChanMgr channel handler. This will also help with config reload where only the local values in TorRelay will need to be updated. Signed-off-by: David Goulet <[email protected]>
* | arti-relay: change debug message to rate-limited warningSteven Engler2026-01-201-9/+19
|/
* arti-relay: call `tor_log_ratelim::install_runtime`Steven Engler2026-01-141-0/+4
|
* chanmgr: Introduce a ChanMgrConfig structDavid Goulet2026-01-131-2/+2
| | | | | | | | | | | | This struct is used to pass configuration parameters to the ChanMgr when building it. At the moment, it holds the ChannelConfig and RelayIdentities (feature gated) which will be used in subsequent commits. Note that relays do require RelayIdentities to build channels. Signed-off-by: David Goulet <[email protected]>
* chanmgr: Remove KeyMgr from constructorDavid Goulet2026-01-131-1/+0
| | | | | | | We'll rely on a RelayIdentities to pass in the right keys to the ChanMgr instead of the entire KeyMgr. Signed-off-by: David Goulet <[email protected]>
* arti-relay: remove `ARTI_RELAY_SHARED_DATA` cfg variableSteven Engler2026-01-051-5/+6
|
* arti-relay: added more commentsSteven Engler2025-12-181-0/+7
|
* arti-relay: some small cleanupSteven Engler2025-12-171-4/+6
|
* arti-relay: add a `GuardMgr`, `CircMgr`, and `DirMgr`Steven Engler2025-12-171-1/+78
|
* arti-relay: implement `CircMgrConfig`Steven Engler2025-12-171-1/+45
|
* arti-relay: implement `GuardMgrConfig`Steven Engler2025-12-171-0/+24
|
* arti-relay: add `NetworkConfig` to configSteven Engler2025-12-171-0/+6
|
* arti-relay: add `StorageConfig::cache_dir()` helperSteven Engler2025-12-171-1/+12
|
* arti,arti-relay: change info keystore path msg to debugSteven Engler2025-12-111-2/+5
|
* arti-relay: install default ring crypto providerSteven Engler2025-12-091-0/+6
| | | | | | | | This is what arti uses, and fixes the warning: ```text WARN tor_rtcompat::impls::rustls: Creating a RustlsRuntime, but no CryptoProvider is installed. The application should call CryptoProvider::install_default() ```
* arti-relay: advertise config fields are now listsSteven Engler2025-12-092-4/+65
| | | | | | | | | | | | | | | | Example: ```toml [relay.advertise] ipv4 = [] ipv6 = ["[10::]:10"] ``` ```text Error: Failed to resolve configuration [...] The list is empty for key "default.relay.advertise.ipv4" in [...] ```
* arti-relay: remove checks on "advertise" addressesSteven Engler2025-11-191-53/+8
|
* arti-relay: update comment about "auto" port optionSteven Engler2025-11-181-2/+1
|
* arti-relay: fix doc commentsSteven Engler2025-11-181-5/+5
|
* arti-relay: remove builder testsSteven Engler2025-11-121-20/+0
| | | | We don't plan to use the builders.
* arti-relay: remove `Default` tests from configSteven Engler2025-11-121-2/+2
| | | | | arti-relay has required config options, which means that `TorRelayConfig` cannot have a default.
* arti-relay: listen at configured OR portsSteven Engler2025-11-121-13/+55
|
* arti-relay: `TorRelay::run` now takes an owned `self`Steven Engler2025-11-121-1/+1
|
* arti-relay: remove `Clone` from `TorRelay`Steven Engler2025-11-121-1/+0
| | | | I don't expect that we'll need this.
* arti-relay: added config options for OR port and advertiseSteven Engler2025-11-122-0/+200
|
* arti-relay: move `iter_join` to a new `util` moduleSteven Engler2025-11-122-28/+34
|
* arti-relay: update some commentsSteven Engler2025-11-121-7/+5
|
* Merge branch 'relay-bin-4' into 'main'opara2025-11-114-9/+122
|\ | | | | | | | | arti-relay: Add OR port listener task See merge request tpo/core/arti!3396
| * arti-relay: update some comments from past few commitsSteven Engler2025-11-112-2/+9
| |
| * tor-chanmgr: wrap the peer address in `Sensitive`Steven Engler2025-11-051-5/+5
| | | | | | | | | | For incoming connections, wrap the peer address in `Sensitive` as it could be a client.
| * arti-relay: add OR port listener taskSteven Engler2025-11-053-2/+94
| | | | | | | | | | This does not yet get the OR port from the config, and the channel manager doesn't yet do anything with the incoming connection.
| * arti-relay: add error context to house keeping taskSteven Engler2025-11-051-5/+11
| |
| * arti-relay: use anyhow's error formattingSteven Engler2025-11-051-2/+10
| |
* | Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-063-3/+3
|/ | | | Run maint/add_warning
* all: run cargo fmtSteven Engler2025-11-041-1/+1
|