summaryrefslogtreecommitdiff
path: root/crates/arti
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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
| | | | |
| * | | | circmgr: Add a timeout setting for long-lived circuits.Nick Mathewson2025-11-122-2/+10
| | | | |
| * | | | Add a notion of isolation strong enough to enable long-lived circuits.Nick Mathewson2025-11-123-0/+38
| | | | | | | | | | | | | | | | | | | | Part of prop368.
* | | | | 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.
* | | | Merge branch 'disable-hidden-service' into 'main'wesleyac2025-11-122-5/+36
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | arti/arti-client/tor-hsservice: Support disabling onion services in the config Closes #2133 See merge request tpo/core/arti!3253
| * | | arti(-rpcserver): remove incorrect semver fileshashcatHitman2025-10-211-1/+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-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | If I understand correctly, the breaking changes propagate like this. Signed-off-by: hashcatHitman <[email protected]>
| * | | arti(-client)/tor-hsservice: return None for disabled servicehashcatHitman2025-10-161-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-162-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| * | | 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-162-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-161-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-161-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
* | | | Bump derive-deftly to 1.5.0Ian Jackson2025-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This has the meta attributes with optional values feature and also hygiene rework for modules. The breaking changes don't break arti.
* | | | arti: better error when tokio-console in cfg but feature is absent.Nick Mathewson2025-11-061-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the pattern we used elsewhere with the "rpc" option. IMO, this kind of thing is another argument in favor if arti#1704 (redoing config types using derive-deftly.)
* | | | arti: Experimental support for tokio-consoleNick Mathewson2025-11-065-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | This is controlled by a new option, `logging.tokio_console.enabled`. It requires building with `--cfg tokio_unstable`. See documentation and comments for more information.
* | | | Merge branch 'deftly-1.4' into 'main'opara2025-11-061-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Bump derive-deftly to 1.4.0 See merge request tpo/core/arti!3448
| * | | | Bump derive-deftly to 1.4.0Ian Jackson2025-11-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will let us use the new modules feature. There are no breaking changes to beta features in 1.4.0.
* | | | | Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-0610-10/+10
|/ / / / | | | | | | | | | | | | Run maint/add_warning
* | | / all: replace all uses of `futures::task::SpawnExt` with `tor_rtcompat::SpawnExt`Steven Engler2025-11-047-9/+9
| |_|/ |/| |
* | | Merge branch 'use_futures_copy' into 'main'Nick Mathewson2025-11-034-115/+35
|\ \ \ | |_|/ |/| | | | | | | | Replace copy_interactive with futures-copy. See merge request tpo/core/arti!3416
| * | Replace copy_interactive with futures-copy.Nick Mathewson2025-10-304-115/+35
| | | | | | | | | | | | | | | | | | | | | | | | This change lets us avoid spawning extra tasks (due to one-direction nature of copy_interactive), and avoid some lock contention (due to use of AsyncReadExt::split). Addresses part of #786.
* | | arti: fix deprecation warnings in assert_cmd libSteven Engler2025-10-314-8/+9
|/ / | | | | | | | | | | | | | | | | | | | | | | ```text warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` --> crates/arti/tests/cli_tests/hsc.rs:26:28 | 26 | let mut cmd = Command::cargo_bin("arti").unwrap(); | ^^^^^^^^^ | = note: `#[warn(deprecated)]` on by default ```
* | maint: bump minor versions of all published cratesSteven Engler2025-10-291-25/+25
| | | | | | | | | | | | | | ```bash readarray -t publish < <(cargo metadata --format-version 1 | jq -r '.packages[] | select((.id | startswith("path+file:///")) and (.rust_version != null) and (.publish == null or .publish == true or .publish != [])) | .name') for package in "${publish[@]}"; do echo "$package:"; cargo set-version --bump minor -p "$package"; done ```
* | Merge branch 'remove_socks' into 'main'Nick Mathewson2025-10-285-10/+35
|\ \ | | | | | | | | | | | | | | | | | | arti: Revise strings that implied that we were a SOCKS-only proxy. Closes #2225 See merge request tpo/core/arti!3398
| * | arti: explain APP_STREAM_BUF_LEN is what it is.Nick Mathewson2025-10-281-0/+6
| | |
| * | arti: Revise strings that implied that we were a SOCKS-only proxy.Nick Mathewson2025-10-285-7/+19
| | | | | | | | | | | | Closes #2225
| * | arti: Stop using SOCKS_BUF_LEN for non-SOCKS proxies.Nick Mathewson2025-10-281-3/+10
| | |
* | | arti: Remove now-needless cognitive_complexity exceptionsNick Mathewson2025-10-282-2/+0
|/ / | | | | | | | | | | | | Apparently the http_connect refactoring made these no longer trigger. Closes #2226
* | http_connect: Remove (most) X- prefixes.Nick Mathewson2025-10-282-32/+44
| | | | | | | | | | | | We can't remove them all, since X-Tor-Stream-Isolation is recognized by C-Tor. I've added a non-deprecated Tor-Stream-Isolation that works indepenently.
* | http_connect: write our own hyper-futures replacementNick Mathewson2025-10-282-6/+79
| |
* | http_connect: Forbid non-empty OPTIONS bodies.Nick Mathewson2025-10-281-0/+8
| |
* | http_connect: validate casei behavior of HeaderMap.Nick Mathewson2025-10-281-0/+36
| |
* | proxy: Revise rpc docs so they are not SOCKS-specificNick Mathewson2025-10-281-14/+20
| |
* | http_connect: Advertise listener capabilities to RPCNick Mathewson2025-10-282-7/+25
| |
* | http_connect: Declare that error messages are text/plain.Nick Mathewson2025-10-281-1/+1
| |
* | http_connect: Reject OPTIONS requests with bodiesNick Mathewson2025-10-281-2/+11
| |
* | http_connect: Implement stream isolationNick Mathewson2025-10-283-5/+84
| |
* | http_connect: implement rpc supportNick Mathewson2025-10-281-6/+76
| |
* | http-connect: Implement X-Tor-Family-PreferenceNick Mathewson2025-10-281-5/+79
| |
* | http_connect: Use consts for headers.Nick Mathewson2025-10-281-4/+16
| |
* | http_connect: Generate an X-Tor-Request-Failed header.Nick Mathewson2025-10-281-2/+20
| |
* | http_connect: Provide better status codes for ErrorKinds.Nick Mathewson2025-10-282-4/+77
| |
* | arti: Implement a "bilingual" HTTP CONNECT proxy.Nick Mathewson2025-10-284-2/+331
| | | | | | | | | | | | | | | | | | | | | | With his commit, our SOCKS ports now accept both SOCKS and HTTP CONNECT requests, per proposal 365. There are still some infelicities, marked with "XXXX" or "TODO". I've tested this with curl, though, and it works. :) Typo-fixes-by: Gabriela Moldovan <[email protected]>
* | arti: Detect proxy protocol _before_ starting SOCKS.Nick Mathewson2025-10-284-27/+89
| | | | | | | | | | This will let us speak HTTP CONNECT as well; there is a stub for initiating an http proxy.
* | Reformat arti/Cargo.tomlNick Mathewson2025-10-281-27/+22
| |