summaryrefslogtreecommitdiff
path: root/crates/arti/src
Commit message (Collapse)AuthorAgeFilesLines
* arti: Note that auto is the same as disabled if vanguards are disabled.Gabriela Moldovan2024-06-031-0/+3
|
* arti: Add vanguards settings to example config.Gabriela Moldovan2024-06-032-1/+14
|
* RPC: Give error from RpcMgr::new if method name is sufficiently bad.Nick Mathewson2024-05-141-1/+1
| | | | | (We don't give an error about unrecognized namespaces (for now), since we have no way to opt in to them.)
* RPC: Enforce method name format.Nick Mathewson2024-05-141-0/+29
| | | | | | | | | | | | We need to do this carefully, since we want our system to be extensible with new namespaces. First, when we are constructing an RpcMgr, we _warn_ about any method names that are misformed. Second, we add a test in the `arti` crate to fail if any method names are invalid. This will only catch method names in crates that `arti` depends on.
* RPC: Use a slightly less awful workaround in socks.rsNick Mathewson2024-05-141-20/+34
| | | | | | | | | | | | | | | | | The problem was that Rust won't let us say ``` type ConnTarget<R> = Arc<dyn ClientConnectionTarget>; ``` because the R parameter wasn't used. Previously we solved this by using a macro instead of a type definition, which is ugly. I had been thinking previously I would need to declare some kind of additional wrapper type, and had shrunk from the verbosity. But @diziet pointed out that I could just use a 2-tuple unconditionally. It's still not beautiful, but it is less hideous than before.
* Remove excess indentation from last commit.Nick Mathewson2024-05-141-14/+11
| | | | (This is a separate commit to make the branch more readable)
* RPC: Refactor socks interpretation to remove stream id, add isolation.Nick Mathewson2024-05-141-41/+41
|
* RPC: RpcDataStream type to act as a "stream-shaped hole"Nick Mathewson2024-05-141-0/+1
| | | | | | | | | The application creates these, using a new-stream-handle RPC command, on an object that can actually create streams. Then later, the application provides the (global) identity of one of these objects when it's making a SOCKS connection. This causes the object to take hold of a `DataStreamCtrl`.
* RPC: Add a trait that can be the target of SOCKS requestsNick Mathewson2024-05-121-18/+34
| | | | | | | | | | | | (These will later become objects that can receive any application request, once we have HTTP connect.) For now, Session and TorClient implement this trait; but soon there will be a new type to hold on to the created DataStreamCtrl. There are some XXXXs here, marking code that is too ugly to live. I should fix it before I merge this branch.
* Merge branch 'new_ci_cfg_strategy' into 'main'Nick Mathewson2024-05-072-4/+4
|\ | | | | | | | | | | | | add_warning/CI: New strategy to avoid "unexpected-cfgs" warning Closes #1395 See merge request tpo/core/arti!2129
| * Re-run maint/add_warning.Nick Mathewson2024-05-062-4/+4
| | | | | | | | This commit is automatically generated.
* | TorClient: Slightly cleaner (?) interface for registering RPC methods.Nick Mathewson2024-05-061-1/+1
| |
* | RPC: Implement methods to get and watch client bootstrap status.Nick Mathewson2024-05-061-0/+5
|/
* Upgrade to futures-rustls 0.26.0, rustls 0.23.5.Nick Mathewson2024-04-221-0/+7
| | | | | | | | | The rustls upgrade will solve #1377 and CVE-2024-32650. Note that we've had to patch our RustlsProvider impl a bit in order to keep the tests passing. See comments. Closes #1377.
* Add a test for transport configurationNick Mathewson2024-04-021-0/+46
| | | | | | | (Previously, nothing actually parsed these values in our configuration.) Closes #1333.
* example-config: Indent transport argumentsNick Mathewson2024-04-021-9/+9
| | | | This will make it possible for our tests to pull them out.
* Fix note in config that claimed onion services weren't implementedNick Mathewson2024-03-271-1/+4
| | | | | Instead, link to documentation, and give the warning about their security.
* hss: Make the limit for streams configurable.Nick Mathewson2024-03-261-3/+1
| | | | Closes #1124.
* Add example unmanaged pluggable transport to config.Nick Mathewson2024-03-141-0/+10
|
* Merge branch 'encapsulate_config_rs' into 'main'Nick Mathewson2024-03-132-8/+19
|\ | | | | | | | | Encapsulate usage of config-rs inside tor-config. See merge request tpo/core/arti!2040
| * tor-config: Put config::Config inside a wrapper type.Nick Mathewson2024-03-131-1/+1
| | | | | | | | This will let us replace Config with something better.
| * Use ConfigurationSource::Verbatim in our tests.Nick Mathewson2024-03-131-7/+17
| |
| * tor-config: Allow ConfigurationSource to be verbatim text.Nick Mathewson2024-03-131-0/+1
| | | | | | | | | | This will let us test our configuration logic without having to use the `config` crate directly.
* | Run maint/add_warning.Nick Mathewson2024-03-132-0/+2
|/
* arti-client: Add VanguardsConfig to TorClientConfig.Gabriela Moldovan2024-03-111-0/+11
|
* Fix typos in doc commentsTobias Stoeckmann2024-03-061-1/+1
|
* arti, CI: Add a test case for command line helpIan Jackson2024-03-051-0/+3
|
* arti: Print help on `arti hss` without subcommandIan Jackson2024-03-051-0/+1
| | | | That's not the default.
* arti: Fix misplaced clap hunkIan Jackson2024-03-051-4/+4
| | | | | | | | | ab950a68 "arti: Add an hss subcommand." mistakenly moved the calls to `subcommand_required` and `arg_required_else_help` into the compile-time conditional. But they're related to the main command parsing. Fixes #1311
* Merge branch 'deny-unchecked-duration-substraction' into 'main'Ian Jackson2024-03-052-0/+2
|\ | | | | | | | | | | | | deny clippy::unchecked_duration_subtraction Closes #1304 See merge request tpo/core/arti!2008
| * deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-292-0/+2
| |
* | arti config watch: Pass Runtime as first argumentIan Jackson2024-03-042-3/+3
| | | | | | | | That seems often how we do things elsewhere.
* | arti config watch: Pass a Runtime, not a TorClient (fmt)Ian Jackson2024-03-041-1/+6
| |
* | arti config watch: Pass a Runtime, not a TorClientIan Jackson2024-03-042-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | I found this confusing in !2009, where the variable is unused on Windows: I wondered if this meant our config-reloading only worked on Unix, since "obviously it would need the TorClient". But actually the TorClient was only used *in this argument* for its runtime. The actual reconfiguration of the TorClient is doen by it being in one of the ReconfigurableModule's. Change the type of the argument for clarity.
* | Merge branch 'analyzer_windows_problems' into 'main'gabi-2502024-03-042-2/+5
|\ \ | | | | | | | | | | | | Fix rust-analyzer problems seen with default features on Windows See merge request tpo/core/arti!2009
| * | arti: do not warn about unused variable on WindowsTobias Stoeckmann2024-02-291-0/+1
| | | | | | | | | | | | | | | Do not complain on non-unix systems that variable client is not used. It is only accessed within the function on unix systems.
| * | arti: define RpcConfig only if neededTobias Stoeckmann2024-02-291-1/+1
| | | | | | | | | | | | The RpcConfig struct is only used if feature rpc is selected.
| * | arti: use name bindings only if neededTobias Stoeckmann2024-02-291-1/+3
| |/ | | | | | | | | The local name binding for tor_config::define_list_builder_accessors is only needed if feature onion-service-service is selected.
* / arti: Fix Windows testTobias Stoeckmann2024-03-011-4/+10
|/ | | | | Windows has a 100-nanosecond precision, so avoid test failure due to a known system limitation.
* arti: Don't output ANSI escape codes when logging to file.Gabriela Moldovan2024-02-221-0/+1
| | | | Closes #1298
* Merge branch 'keystore-dir' into 'main'gabi-2502024-02-211-2/+0
|\ | | | | | | | | | | | | arti, arti-client, tor-keymgr: Remove keystore dir configuration. Closes #1202 See merge request tpo/core/arti!1995
| * arti, arti-client, tor-keymgr: Remove keystore dir configuration.Gabriela Moldovan2024-02-211-2/+0
| | | | | | | | Closes #1202
* | tor-hsservice: config: max_concurrent_streams_per_circuit: comment outIan Jackson2024-02-211-0/+2
|/ | | | | This is not implemented. It is better to have it commented out than providing a knob that isn't connected to anything.
* Merge branch 'fast_and_stable' into 'main'Nick Mathewson2024-02-202-0/+8
|\ | | | | | | | | | | | | Require the Fast and Stable flags as appropriate. Closes #1100 See merge request tpo/core/arti!1976
| * Add a configuration option for long_lived_ports.Nick Mathewson2024-02-202-0/+8
| |
* | Refactor and improve error hinting.Nick Mathewson2024-02-141-4/+4
|/ | | | | | | | | | | | Instead of using complicated match statements, use downcasting to find error types that define specific hints. This also lets us define a reasonable hint-extractor for anyhow::Error, and use it when reporting errors in main. I've left an implementation of hint() in `impl Error`, to avoid breaking backward compatibility. Closes #1165.
* educe: Use std's default for enums where default variant is unitIan Jackson2024-02-121-4/+2
| | | | | | | | | | | | | Since Rust 1.66, std's default works properly for enums, provided that the default variant is a unit. Review all uses of `#[educe(default)]` on enums and replace them with std where possible, which is most of them. In 1.66 and later, std's `#[derive(Default)]` doesn't infer any generic bounds on the derived impl, where it's an enum - since the unit variant can always be constructed. So this change doesn't add any generic bounds and is not API-visible.
* Clarify onion service example(s) a little more.Nick Mathewson2024-02-081-3/+5
|
* arti: Only exit if all the modules have been dropped.Gabriela Moldovan2024-01-251-7/+8
| | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1917#note_2988815
* arti: Use Weak references for the reconfigurable modules (fmt).Gabriela Moldovan2024-01-251-6/+1
|