summaryrefslogtreecommitdiff
path: root/crates/arti/src
Commit message (Collapse)AuthorAgeFilesLines
* arti: fix path comment in example configSteven Engler2026-01-121-1/+1
|
* Make sure that rpc_state_sender lives as long as the proxies.Nick Mathewson2026-01-121-2/+8
| | | | | | Fixes bug introduced in 0cc367b9fef37c0f7d7f04d54c4687b27ef251d0. Without this fix, RPC's get_proxy_info command wouldn't work.
* keymgr: Make CTorPath more like the client/service specifiersGabriela Moldovan2026-01-061-3/+3
| | | | | | | | | | | | | This will make it easier to see the correspondence between CTorPaths and the HS client/service key specifiers. Initially, I was hoping this would make it easier to write a d-d macro that automatically derives a `CTorPath` variant (e.g. `HsClientDescEncKeypair`) from the KeySpecifier type name (`HsClientDescEncKeypairSpecifier`), but alas, I don't think d-d can "chop off" name suffixes ("Specifier", in this case). `from_ctor_path()`/`ctor_path()` implementations for converting `CTorPath`s to and from key specifiers.
* keymgr: Move Unrecognized errors out of KeyPathErrorGabriela Moldovan2026-01-062-3/+2
| | | | | | | | | | | | | | | | | | | | | Out of all the variants in `KeyPathError`, `Unrecognized` is the odd one out, because unlike the others, which are mainly just lower level parsing errors, `Unrecognized` is a higher level error constructed in `KeyMgr::describe()`. `KeyMgr::describe()` now returns an `Option`, because * the failure to describe a user provided `KeyPath` may or may not be an error * previously, `describe()` would only ever return `Ok` or `Err(KeyPathError::Unrecognized)`, which essentially a binary result. Also, `describe()` would never return any of the other `KeyPathError` kinds, which further suggests `Unrecognized` doesn't belong there The `Unrecognized` variant still exists, but is now part of `KeystoreCorruptionError`, (returned from `KeyMgr::validate_entry_integrity()`).
* arti: Remove no-longer needed helper functionGabriela Moldovan2026-01-061-23/+18
| | | | This folds `display_arti_entry()` into `display_entry()`.
* arti: Remove special handling for C Tor keys (fmt)Gabriela Moldovan2026-01-061-4/+1
|
* arti: Remove special handling for C Tor keysGabriela Moldovan2026-01-061-40/+2
| | | | | | | | | | This is no longer needed now that `KeyMgr::describe()` works on `CTorPath`s. Removing this special handling has the added bonus that the keymgr CLI output is now uniform for all keystores (before this change, `keys list` used a slightly different output format for displaying C Tor entries). The corresponding tests will be updated in a future commit.
* Improve socks_listen/dns_listen documentation.Nick Mathewson2025-12-161-3/+8
|
* arti: Move "port_info_file" configuration into "storage"Nick Mathewson2025-12-163-12/+34
| | | | | | This was a little funny, since the other storage elements are declared in tor-client. Fortunately, our stacked configuration logic handles this fine.
* arti: tweak port_info documentation.Nick Mathewson2025-12-161-0/+3
|
* arti: Export the chosen ports in a ports_info.json file.Nick Mathewson2025-12-167-24/+266
| | | | | This allows applications to find out where arti is listening when arti has been configured to listen with the port "auto".
* arti: Change how proxy futures are returned.Nick Mathewson2025-12-163-26/+45
| | | | | | | | | | | | | | Previously, the proxy and dns modules only had "be a proxy" functions that ran forever. Now they have functions that bind to listeners and return a separate "be a proxy" future that runs forever. This lets us simplify some kludges in subcommands::proxy. More importantly, it will let us return the bound-to ports so that subcommands::proxy can write them to disk. This is a break in experimental-apis, which does not require a semver change.
* arti: tweak docs, add TODOs with respect to Listener.Nick Mathewson2025-12-163-1/+6
|
* arti: Log the actual addresses we are listening on.Nick Mathewson2025-12-162-4/+10
|
* Remove unnecessary `doc(cfg(...))` attributesNeel Chauhan2025-12-041-1/+0
| | | | | | | | | Fixes part of #2193. (Edits from nickm: I selected the cases here that I could verify were correct from immediate context.) Edited-by: Nick Mathewson <[email protected]>
* Merge branch 'torclient-keymgr-accessor' into 'main'wesleyac2025-12-031-12/+10
|\ | | | | | | | | Add `KeyMgr` accessor to `TorClient` See merge request tpo/core/arti!3442
| * arti: keys: use `TorClient::keymgr` instead of `InertTorClient::keymgr` in ↵hjrgrn2025-11-051-12/+10
| | | | | | | | | | | | `run_check_integrity` This change simplifies the signature of `run_check_integrity`.
* | Merge branch 'listen' into 'main'opara2025-12-022-2/+2
|\ \ | | | | | | | | | | | | tor-config: Refactor `Listen` to make usable for arti-relay See merge request tpo/core/arti!3469
| * | tor-config: rename `Listen::is_localhost_only` to `is_loopback_only`Steven Engler2025-12-022-2/+2
| | | | | | | | | | | | Assumes that 0.37.0 will be the next version number.
* | | arti: Adjust a no-longer acccurate hss docGabriela Moldovan2025-12-011-1/+1
| | |
* | | arti: Add missing subcommand docsGabriela Moldovan2025-12-014-0/+6
| | |
* | | Merge branch 'ticket_2259' into 'main'Nick Mathewson2025-11-251-1/+26
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | arti: Put supported request headers in Tor-Capabilties Closes #2259 See merge request tpo/core/arti!3473
| * | | arti: Put supported request headers in Tor-CapabiltiesNick Mathewson2025-11-181-1/+26
| |/ / | | | | | | | | | | | | | | | This is for spec conformance; it is a missing piece of prop365. Closes #2259.
* | | Merge branch 'mistrust-and-the-empty-string' into 'main'Nick Mathewson2025-11-251-2/+18
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix some errors in and around making directories for logfiles. Closes #2240, #2265, and #2266 See merge request tpo/core/arti!3491
| * | | arti: Make logging parent check work with our MSRV.Nick Mathewson2025-11-251-1/+1
| | | |
| * | | arti: use anyhow::Context on a make_directory failure.Nick Mathewson2025-11-241-1/+6
| | | | | | | | | | | | | | | | | | | | This will improve the error message for problems similar to arti#2240, if they recur.
| * | | arti: Allow a logfile with no directory prefix.Nick Mathewson2025-11-241-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | This should fix the main part of arti#2240. This is an instance of arti#2267 ("Path::parent has funny behavior")
* | | | Merge branch 'intro-dos' into 'main'gabi-2502025-11-251-0/+21
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | arti: Add rate_limit_at_intro to the example config See merge request tpo/core/arti!3493
| * | | | arti: Clarify that the "burst" is not per second.Gabriela Moldovan2025-11-251-1/+1
| | | | |
| * | | | arti: Add rate_limit_at_intro to the example configGabriela Moldovan2025-11-251-0/+21
| |/ / / | | | | | | | | | | | | | | | | | | | | This is mostly c&p from the `rate_limit_at_intro` docs, I just added an extra paragraph to clarify the meaning of the tuple elements (i.e. `(rate, burst)`).
* | | | Merge branch 'max-concurrent-streams' into 'main'Nick Mathewson2025-11-251-0/+5
|\ \ \ \ | |/ / / |/| | | | | | | | | | | hsservice: Clarify what max_concurrent_streams_per_circuit does See merge request tpo/core/arti!3492
| * | | hsservice: Clarify what max_concurrent_streams_per_circuit doesGabriela Moldovan2025-11-251-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | At first glance, this might seem equivalent to C Tor's `HiddenServiceMaxStreams` option, but it's actually `HiddenServiceMaxStreamsCloseCircuit` (Arti doesn't implement the former).
* | | | Merge branch 'end_reason_handling' into 'main'Nick Mathewson2025-11-241-1/+38
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | http-connect: use end reason for http status if possible See merge request tpo/core/arti!3481
| * | | | http-connect: use end reason for http status if possibleNick Mathewson2025-11-241-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | The spec includes a direct conversion from END reason fields to HTTP status codes, so we should follow it if we have an END reason.
* | | | | opentelemetry: Instrument a bunch of functions.Wesley Aptekar-Cassels2025-11-241-1/+7
| |/ / / |/| | | | | | | | | | | | | | | These are all aimed at figuring out in more detail what's going on in #2079 and related issues.
* | | | Add `hsc key ctor-migrate` subcommandhjrgrn2025-11-241-0/+119
|/ / /
* | | http_connect: Report end reasons for HTTP CONNECT failures.Nick Mathewson2025-11-191-6/+27
| | |
* | | tor-error: Provide a more reasonable API for http status codes.Nick Mathewson2025-11-181-2/+2
| | |
* | | tor-error: Add support for ErrorKind->HTTP status conversionNick Mathewson2025-11-181-78/+2
|/ / | | | | | | | | | | | | It makes more sense to have the conversion here, so it can use an exhaustive match over ErrorKind. This isn't the final API; I'm just moving the code from `arti`.
* | http_connect: Add AsyncReadExt to fix compilation.Nick Mathewson2025-11-131-2/+2
| |
* | Merge branch 'opentelemetry-options-without-feature-warning' into 'main'Nick Mathewson2025-11-131-1/+17
|\ \ | | | | | | | | | | | | | | | | | | arti: Warning when opentelemetry config is set but not build with feature Closes #2247 See merge request tpo/core/arti!3458
| * | arti: Boyscout fixnield2025-11-131-1/+1
| | | | | | | | | | | | It seems this config is for tokio-console and not the RPC.
| * | arti: Warning when opentelemetry config is set but not build with featurenield2025-11-131-0/+16
| | |
* | | Merge branch 'http_xsprobe' into 'main'Nick Mathewson2025-11-131-1/+142
|\ \ \ | | | | | | | | | | | | | | | | Validate Host header for non-CONNECT requests to HTTP CONNECT port See merge request tpo/core/arti!3429
| * | | http_connect: prevent tests from colliding on directoriesNick Mathewson2025-11-131-5/+16
| | | |
| * | | http_connect: fix to conform to MSRVNick Mathewson2025-11-131-1/+1
| | | |
| * | | http_connect: add a test for Host validation.Nick Mathewson2025-11-131-0/+73
| | | |
| * | | Validate Host header for non-CONNECT requests to HTTP CONNECT portNick Mathewson2025-11-031-1/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This validation makes it harder for an adversarial webpage to probe for the version of arti and its capabilities. See torspec!437.
* | | | Merge branch 'prop368-v4' into 'main'Nick Mathewson2025-11-135-3/+50
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | Implement a usage-based timeout for strongly isolated circuits (prop368) Closes #2237 See merge request tpo/core/arti!3430
| * | | Fix compilation without all-features.Nick Mathewson2025-11-121-1/+2
| | | |