summaryrefslogtreecommitdiff
path: root/crates/arti/src
Commit message (Collapse)AuthorAgeFilesLines
* arti: wait a short while on startup if lockfiles are unavailable.Nick Mathewson2024-06-241-1/+1
|
* arti: Add a TODO about a possible refactoring.Gabriela Moldovan2024-06-171-0/+2
| | | | | I propose we move each subcommand implementation to a `subcommand` submodule.
* arti: Move arti hss subcommand implementation to separate module.Gabriela Moldovan2024-06-173-38/+58
| | | | This addresses a TODO.
* Merge branch 'arti-relay-flag' into 'main'Nick Mathewson2024-06-121-39/+63
|\ | | | | | | | | relay: Add relay cargo feature flag and subcommand See merge request tpo/core/arti!2182
| * relay: Add relay cargo feature flag and subcommandDavid Goulet2024-06-111-39/+63
| | | | | | | | | | | | | | | | | | | | Add the optional non default feature flag "relay" that will be used to enable relay support of arti. This commit also adds the "relay" subcommand to arti binary conditionnal on the feature flag in order to have a place holder starting point. Signed-off-by: David Goulet <[email protected]>
* | RPC: Use RPC methods instead of the "ClientConnectionTarget" trait.Nick Mathewson2024-06-113-30/+116
|/ | | | | | | | | | | | On its own, this might not seem like a huge improvement, but it will later let us implement these RPC methods for types that can't reasonably implement ClientConnectionTarget. It also serves as a proof of concept that special-method invocation can actually work, so that we can build things like this in cases where introducing a trait isn't practical. Closes #1427
* rpc: Make RpcMgr::lookup_object return context along with object.Nick Mathewson2024-06-101-0/+1
| | | | The context will make it possible to invoke rpc methods.
* 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.