summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | proto: Use a ZST-token pattern to enforce correctness for TunnelActivityNick Mathewson2025-11-122-14/+58
| | | | | | | |
| * | | | | | | circmgr: In expiration task, try again if we are not yet ready to expire.Nick Mathewson2025-11-121-21/+31
| | | | | | | |
| * | | | | | | circmgr: Add a timeout setting for long-lived circuits.Nick Mathewson2025-11-124-3/+30
| | | | | | | |
| * | | | | | | circmgr: Implement expiration for long-lived tunnels.Nick Mathewson2025-11-124-22/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code uses the algorithm of prop368: When a tunnel is sufficiently isolated, we want to expire it after it has been disused for a certain amount of time. The implementation is a little tricky, since we need to call an async function on ClientTunnel to look up the disused_since() check. We don't want to call async functions while holding locks, so we need to drop the TunnelList lock before we do the disused_since() calls, and the grab it again. As part of this change, I've had made expiration functions return the earliest time at which any tunnel might expire. We can use this in the future to spawn fewer expiration tasks, and scan the list of tunnels less often.
| * | | | | | | circmgr: Add a notion of long-lived tunnels.Nick Mathewson2025-11-122-8/+77
| | | | | | | |
| * | | | | | | circmgr: Refactor should_expire()Nick Mathewson2025-11-121-24/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of a series of cutoffs, take an object with a set of lifetimes.
| * | | | | | | circmgr: make expiration functions asyncNick Mathewson2025-11-122-31/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll need them to be async so they can call disused_since() on tunnels.
| * | | | | | | circmgr: rename expire_tunnel to consider_expiring_tunnelNick Mathewson2025-11-121-3/+7
| | | | | | | |
| * | | | | | | Add a notion of isolation strong enough to enable long-lived circuits.Nick Mathewson2025-11-124-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part of prop368.
| * | | | | | | tor-proto: Track information on when tunnels were last usedNick Mathewson2025-11-129-1/+258
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | This is part of an implementation for proposal 368.
* | | | | | | Merge branch 'remove-disclaimers' into 'main'Ian Jackson2025-11-131-4/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti: Remove security disclaimer from onion service support See merge request tpo/core/arti!3464
| * | | | | | | arti: remove security disclaimer from onion service supportSteven Engler2025-11-121-4/+1
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | These appear to be old comments. Now that these features are stable, we consider them safe to use.
* / | | | | | proto: Remove duplicated function in CircHopGabriela Moldovan2025-11-132-7/+2
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | `CircHop::relay_format()` returned the same thing as `CircHop::relay_cell_format()`.
* | | | | | Merge branch 'rm-todo' into 'main'opara2025-11-121-3/+0
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | proto: Remove a no longer relevant TODO See merge request tpo/core/arti!3463
| * | | | | proto: Remove a no longer relevant TODOGabriela Moldovan2025-11-121-3/+0
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think this was addressed by @opara in eca15143ba80b789382ba7cbe19601d3b98e42c2. Spotted while refactoring `CircHop`.
* | | | | Merge branch 'v6only' into 'main'opara2025-11-125-4/+150
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-rtcompat: Use a consistent listen implementation, and set `IPV6_V6ONLY` for listening sockets on `cfg(unix)` Closes #2246 See merge request tpo/core/arti!3457
| * | | | | tor-rtcompat: add comments about blocking in async contextsSteven Engler2025-11-122-1/+5
| | | | | |
| * | | | | tor-rtcompat: set `IPV6_V6ONLY` for listening sockets on unixSteven Engler2025-11-102-2/+22
| | | | | |
| * | | | | tor-rtcompat: use a consistent `listen()` implementationSteven Engler2025-11-105-3/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives us a consistent `listen()` implementation across runtimes, and gives us flexibility to customize the bind/listen process for TCP sockets.
* | | | | | Merge branch 'disable-hidden-service' into 'main'wesleyac2025-11-128-19/+84
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti/arti-client/tor-hsservice: Support disabling onion services in the config Closes #2133 See merge request tpo/core/arti!3253
| * | | | | Fix semver files.Wesley Aptekar-Cassels2025-11-033-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | We don't need to modify semver files for newly added methods.
| * | | | | arti(-client|-ureq)/tor-hsservice: semver files v2hashcatHitman2025-10-213-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Combined with the previous commit, this completes my second attempt at correctly handling the semver files. tor-hssservice: I removed the extra bit at the end of the first line explaining the semantics of the new return type, since the important part is really just the fact that the return type changed. The semantics are documented in the methods themselves. arti-client: Same as above, but I also removed the `client` module prefix since the `client` module isn't actually public, so to external crate users the broken type is directly in the crate root. Removed old "used in the public API of this crate" line. Added lines referring to the 2 breaking changes we re-export from tor-hsservice. arti-ureq: Removed old "used in the public API of this crate" line. Added lines referencing every breaking change in arti-client. This MIGHT be wrong, but I think this is correct because we re-export arti-client as a whole. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti(-rpcserver): remove incorrect semver fileshashcatHitman2025-10-212-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Second attempt at semver in progress. Based on the feedback from wesley, it seems neither of these crates had any breaking changes. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti(-client|-ureq|-rpcserver): semver fileshashcatHitman2025-10-164-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If I understand correctly, the breaking changes propagate like this. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti-client/tor-hsservice: semver fileshashcatHitman2025-10-162-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Might be too verbose... unsure. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti(-client)/tor-hsservice: return None for disabled servicehashcatHitman2025-10-164-30/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no longer a hard error anywhere for trying to launch a service which is disabled in the config. Instead, it always means returning `Ok(None)`. The axum and hyper examples were updated again as a consequence. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti/tor-hsservice: don't warn on autostarthashcatHitman2025-10-164-22/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "enabled" config option is back to using a regular `bool`. When unset, it defaults to true, and the service runs as if it had been set. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | tor-hsservice: TODO - allow changing "enabled"hashcatHitman2025-10-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As requested in the review, there's a TODO now so we can come back some day and allow onion services to be started/stopped while the client is running. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti: fix hs "enabled" in example confighashcatHitman2025-10-161-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I didn't realize we had tests that made use of the example config. The pre-commit and pre-push hooks I had didn't trigger them, so my modification to the example config silently got through and caused `cfg::test::onion_services` to fail in CI. The issue was that I had put my example for `onion_services."allium-cepa".enabled` with a default of `true`. The correct default is actually `"auto"`, so I switched it and improved the description of the options. I've fixed my hooks. Which, to be fair, are just the hooks provided in `./maint/hooks/`. Maybe those should be improved? Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti/tor-hsservice: warn on service autostarthashcatHitman2025-10-164-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "enabled" config option now uses `tor_config::BoolOrAuto`. When unset (which defaults to "Auto"), the service will run with a warning. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti(-client): graceful service disable in arti onlyhashcatHitman2025-10-162-32/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a service is disabled in the config, `arti::onion_proxy::Proxy` handles it gracefully, and `arti_client::client::TorClient::launch_onion_service_with_hsid` and `arti_client::client::TorClient::launch_onion_service` both hard error. The axum and hyper examples were updated again as a consequence. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti/arti-client: add graceful service disablehashcatHitman2025-10-162-14/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hidden services disabled in the config are now handled more gracefully by arti/arti-client, before the hard error occurs. The axum and hyper examples were updated as a consequence. Signed-off-by: hashcatHitman <[email protected]>
| * | | | | arti: add "enabled" config to the example confighashcatHitman2025-10-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: hashcatHitman <[email protected]>
| * | | | | tor-hsservice: add config to disable servicehashcatHitman2025-10-163-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added the `enabled` field to the config options for hidden services. The default is `true`. If it is set to `false`, the service won't start. As of this specific commit, it's a hard error; it'll be checked again at an earlier stage where it won't be once the feature is ready. Signed-off-by: hashcatHitman <[email protected]>
* | | | | | Merge branch 'relay-bin-4' into 'main'opara2025-11-1112-21/+148
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | 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-058-16/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For incoming connections, wrap the peer address in `Sensitive` as it could be a client.
| * | | | | arti-relay: add OR port listener taskSteven Engler2025-11-054-3/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | | | | |
* | | | | | fallbackdir: Update list generated on November 10, 2025Tor CI Release2025-11-111-885/+887
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Tor CI Release <[email protected]>
* | | | | | Merge branch 'p2-dedup' into 'main'Ian Jackson2025-11-111-123/+139
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: parse2 More deduplication of the derive macro See merge request tpo/core/arti!3455
| * | | | | | tor-netdoc: parse2: Improve error message when using with=Ian Jackson2025-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can result in "trait not implemented" errors here. Use the `${paste_spanned}` trick.
| * | | | | | tor-netdoc: parse2 derive: deduplicate completionIan Jackson2025-11-101-35/+33
| | | | | | |
| * | | | | | tor-netdoc: parse2 derive: deduplicate item accumulationIan Jackson2025-11-101-31/+35
| | | | | | |
| * | | | | | tor-netdoc: parse2 derive: deduplicate item accumulation (prep)Ian Jackson2025-11-101-43/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move what is now IF_NONSTRUCTURAL_ACCUMULATE into the common module. It's not yet suitable for reuse. The docs for ACCUMULATE_ITEM_VALUE are still wrong. We'll fix that in a moment.
| * | | | | | tor-netdoc: parse2 derive: Provide dtrace in NetdocParseableFieldsIan Jackson2025-11-101-12/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was previously only not done because of the need to c&p. Also, we're going to be expanding some common macros that will use it.
| * | | | | | tor-netdoc: parse2 derive: Get rid of $ITEM workaroundIan Jackson2025-11-101-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The hygiene is fixed in derive-deftly 1.5.x.
* | | | | | | Merge branch 'netdoc-encode' into 'main'gabi-2502025-11-118-13/+18
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | tor-netdoc: Rename the `build` module to `encode` See merge request tpo/core/arti!3456
| * | | | | | Apply deferred rustfmt churnIan Jackson2025-11-103-4/+4
| | | | | | |