summaryrefslogtreecommitdiff
path: root/crates/arti/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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]>
* | | | 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-063-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | 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
| |_|/ |/| |
* | | Replace copy_interactive with futures-copy.Nick Mathewson2025-10-303-115/+34
| |/ |/| | | | | | | | | | | | | 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.
* | Merge branch 'remove_socks' into 'main'Nick Mathewson2025-10-284-10/+30
|\ \ | | | | | | | | | | | | | | | | | | 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-284-7/+14
| | | | | | | | | | | | 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-281-4/+77
| |
* | 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-282-4/+82
| |
* | 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-283-1/+328
| | | | | | | | | | | | | | | | | | | | | | 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-283-26/+86
| | | | | | | | | | This will let us speak HTTP CONNECT as well; there is a stub for initiating an http proxy.
* | arti: Pass a buffered stream to handle_socks_connNick Mathewson2025-10-282-3/+15
| | | | | | | | This will let us implement bilingual HTTP proxies.
* | arti: Renaming around socks/generic proxiesNick Mathewson2025-10-283-40/+43
| | | | | | | | This is _all_ renaming and comment adjustments.
* | arti: Split socks-specific parts out of handle_socks_connNick Mathewson2025-10-282-448/+475
| | | | | | | | | | | | | | | | | | We want to abstract every part of this code that knows that it's speaking SOCKS, so that we can in turn add a new proxy type. Note that several methods and types here have names that are no longer appropriate for their functionality. I'll revise those in a later commit.
* | arti::proxy: Small reformats.Nick Mathewson2025-10-281-5/+7
| | | | | | | | | | (I'm not sure why this wasn't already done, but let's do it as a separate MR.)
* | Rename "arti::socks" to "arti::proxy".Nick Mathewson2025-10-283-3/+3
|/ | | | I'm about to add another proxy type.
* arti: Ignore reload_cfg::test::watch_multiple.Wesley Aptekar-Cassels2025-10-161-0/+2
| | | | This is flaky, ignoring until #1607 is fixed.
* Merge branch 'fix-watch-single-file-flake' into 'main'wesleyac2025-10-161-3/+5
|\ | | | | | | | | | | | | arti config: Fix flaky watch_single_file test. Closes #1607 See merge request tpo/core/arti!2503
| * arti config: Fix flaky watch_single_file test in a more principled way.Wesley Aptekar-Cassels2025-10-071-12/+4
| | | | | | | | Thanks to gabi for the suggestion.
| * arti config: Fix flaky watch_single_file test.Wesley Aptekar-Cassels2025-10-071-2/+12
| | | | | | | | Fixes: #1607
* | arti: keys: Simplify `run_check_integrity`hjrgrn2025-10-081-9/+7
| |
* | arti: keys: Improve readability of `print_check_integrity_incipit`hjrgrn2025-10-081-11/+7
| |
* | arti: keys: Fix typo in `run_check_integrity`hjrgrn2025-10-081-1/+1
| |
* | arti: keys: Rename `invalid_entry` to `expired_entry` in `run_check_integrity`hjrgrn2025-10-081-3/+3
| |
* | arti: keys: Add warning for unexpected invalid keystore entryhjrgrn2025-10-081-14/+16
| |
* | arti: keys: Improve readability of `run_check_integrity`hjrgrn2025-10-081-5/+4
| |
* | arti: keys: Add comment explaining why `services` cannot be droppedhjrgrn2025-10-081-0/+2
| |
* | arti: keys: Add comment explaining difference between `affected_keystores` ↵hjrgrn2025-10-081-0/+5
| | | | | | | | and `keystores`
* | arti: keys: Refactor `get_expired_keys`hjrgrn2025-10-081-9/+6
| | | | | | | | The function now returns `Result<Vec<InvalidKeystoreEntry<'a>>>`
* | arti: keys: Add integrity check for empty expired_entrieshjrgrn2025-10-081-0/+14
| | | | | | | | | | | | | | Add a check in `run_check_integrity` to verify that the `expired_entries` collection is empty after processing all registered keystores. This should always be true, as all expired entries are expected to be removed during iteration. If not, it indicates a bug.
* | arti: keys: Introduce InvalidKeystoreEntry and InvalidKeystoreEntries structshjrgrn2025-10-081-33/+74
| | | | | | | | | | Replace raw tuples with named structs to reduce type complexity and improve code clarity and maintainability.