summaryrefslogtreecommitdiff
path: root/crates/arti-client/src
Commit message (Collapse)AuthorAgeFilesLines
* arti-client: Unconditionally retire all HS circuits if circmgr says so.Gabi Moldovan2024-06-031-12/+1
| | | | | | | If the circmgr retires all of its circuits, so should the HS circ pool. The circuits can be retired for various reasons (for example, if the configured vanguard mode changes).
* arti-client: Add TODO about always clearing the HS circ pool.Gabriela Moldovan2024-06-031-0/+8
|
* tor-circmgr: Remove VanguardMode from Pool (fmt).Gabriela Moldovan2024-06-031-4/+3
|
* tor-circmgr: Remove VanguardMode from Pool.Gabriela Moldovan2024-06-031-5/+7
| | | | | | | | | Storing the VanguardMode in multiple places (in the VanguardMgr *and* the HS circ Pool) is dangerous and can lead to split brain situations where different parts of the code think they are running in different VanguardModes. See #1424
* tor-guardmgr: Unconditionally define VanguardConfig.Gabriela Moldovan2024-06-031-11/+3
| | | | | | | | | We want to export the `VanguardConfig` even if the `vanguards` feature is disabled (we will need to unconditionally include it in the arti config). Note that if `vanguards` are disabled, the `VanguardMode` from the `VanguardConfig` can only be `Dsiabled`.
* arti-client: Remove unnecessary VanguardConfig pub use.Gabriela Moldovan2024-06-031-6/+0
| | | | | | | This is already exported via the `pub mod vanguards` module, so there is no need to export it from the top-level too. This *is* a breaking change, but the downstream fix is trivial (and the type should never have been exported directly from `arti_client::config` in the first place).
* RPC: Require an Error type in methods.Nick Mathewson2024-05-161-0/+3
| | | | | | | | This is needed so that we can cast special methods' return types properly. I wish I could make this optional, but Rust doesn't allow defaulting an associated type.
* RPC: Use RPC method names in a consistent format.Nick Mathewson2024-05-141-3/+3
| | | | | Specifically, we want a single colon, and we want our method names to be in snake_case.
* RPC: Add notes about ClientConnectionTargetNick Mathewson2024-05-141-0/+7
| | | | | Document its relation to the method system, and possible future evolution.
* RPC: Require DynClone for ClientConnectionError.Nick Mathewson2024-05-141-3/+5
|
* RPC: Seal ClientConnectionError.Nick Mathewson2024-05-141-2/+19
|
* RPC: RpcDataStream type to act as a "stream-shaped hole"Nick Mathewson2024-05-142-0/+12
| | | | | | | | | 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-122-4/+83
| | | | | | | | | | | | (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.
* rpc: Mark TorClient as exposed outside of sessionNick Mathewson2024-05-091-1/+6
|
* rpc: Add an isolated-client method on TorClient.Nick Mathewson2024-05-092-3/+27
|
* Merge branch 'new_ci_cfg_strategy' into 'main'Nick Mathewson2024-05-071-2/+2
|\ | | | | | | | | | | | | 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-061-2/+2
| | | | | | | | This commit is automatically generated.
* | Add requisite RPC method name prefixesNick Mathewson2024-05-061-2/+2
| |
* | TorClient: Slightly cleaner (?) interface for registering RPC methods.Nick Mathewson2024-05-061-4/+4
| |
* | Add a note about declaring get and watch functions.Nick Mathewson2024-05-061-0/+6
| |
* | Add a note about why the RPC functions aren't declared as methods.Nick Mathewson2024-05-061-0/+5
| |
* | RPC: Send "null" for blockage rather than omitting it.Nick Mathewson2024-05-061-2/+1
| |
* | Lightly simplify the syntax for installing multiple InvokerEntsNick Mathewson2024-05-061-2/+4
| |
* | RPC: Implement methods to get and watch client bootstrap status.Nick Mathewson2024-05-062-0/+105
|/
* Fix recursive impl for arti_client::Error.Nick Mathewson2024-04-221-1/+1
| | | | This is an actual bug. Closes #1379.
* arti-client: add hs_circ_pool() method on TorClientRichard Pospesel2024-04-151-0/+14
|
* Port many of the macros in tor-rpcbase to use derive-deftly.Nick Mathewson2024-04-042-18/+2
| | | | | | This simplifies our implementation logic in a few places, and simplifies our invocation syntax greatly. There are a few infelicities, noted in `TODO RPC` comments.
* Make TorClientConfig implement AsRef<BridgesConfig>Nick Mathewson2024-04-021-0/+5
| | | | I believe this is how we expose the parts of TorClientConfig?
* Add tests for configuring unmanaged transportsNick Mathewson2024-03-141-11/+49
| | | | | Also, adapt the pt configuration tests to check for whether the error messages are as expected.
* Rename ManagedTransportConfig to TransportConfig.Nick Mathewson2024-03-141-7/+7
| | | | We're going to start using this type for _every_ kind of transport.
* Merge branch 'encapsulate_config_rs' into 'main'Nick Mathewson2024-03-131-2/+2
|\ | | | | | | | | Encapsulate usage of config-rs inside tor-config. See merge request tpo/core/arti!2040
| * tor-config: Allow ConfigurationSource to be verbatim text.Nick Mathewson2024-03-131-2/+2
| | | | | | | | | | This will let us test our configuration logic without having to use the `config` crate directly.
* | Run maint/add_warning.Nick Mathewson2024-03-135-0/+5
|/
* Merge branch 'arti_client_test' into 'main'gabi-2502024-03-111-1/+12
|\ | | | | | | | | arti-client: increase coverage in src/address.rs See merge request tpo/core/arti!2029
| * arti-client: increase coverage in src/address.rsBrady Fomegne2024-03-051-1/+12
| | | | | | | | | | | | - added test for TorAddr::enforce_config with invalid/onion hostname - added test for display Host::Onion - added test for any type &T who implement IntoTorAddr trait
* | tor-circmgr: Add HsCircPoolConfig, make HsCircPool::reconfigure general-purpose.Gabriela Moldovan2024-03-112-7/+12
| |
* | tor-circmgr: Create the VanguardMgr in CircMgr::new.Gabriela Moldovan2024-03-111-19/+0
| |
* | arti-client: Reconfigure the HS circuit pool if needed.Gabriela Moldovan2024-03-111-0/+14
| |
* | arti-client: Keep a handle to the HsCircPool if onion-service-client is enabled.Gabriela Moldovan2024-03-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If vanguards are enabled, we will need to be able to reconfigure the HS circ pool in `TorClient::reconfigure_inner` (to handle the switch from vanguards-full to vanguards-lite etc.). The reconfiguration needs to happen even if only one of `onion-service-client` and `onion-service-service` is enabled. Without this change, in the `onion-service-client`-enabled / `onion-service-service`-disabled case, we'd need to reach into `HsClientConnector::hs_circ_pool` to reconfigure the client `HsCircPool`. By making `hs_circ_pool` part of `TorClient` in both cases, we only need to call `HsCircPool::reconfigure` from one place (in `TorClient::reconfigure_inner`).
* | arti-client: Add vanguard_config() to CircMgrConfig.Gabriela Moldovan2024-03-111-1/+15
| |
* | arti-client: Add VanguardsConfig to TorClientConfig.Gabriela Moldovan2024-03-112-3/+11
| |
* | arti-client: Re-export VanguardsConfig from vanguards module.Gabriela Moldovan2024-03-111-0/+9
| |
* | tor-circmgr: Give CircMgr a VanguardMgr.Gabriela Moldovan2024-03-112-0/+34
| | | | | | | | Closes #1277
* | Fix typos in doc commentsTobias Stoeckmann2024-03-061-1/+1
| |
* | Fix typos in commentsTobias Stoeckmann2024-03-061-1/+1
| |
* | arti-client: Fix typo in error message.Gabriela Moldovan2024-03-051-1/+1
| |
* | deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-291-0/+1
|/
* tor-hsclient: Remove client nickname from the client key specifiers (fmt).Gabriela Moldovan2024-02-221-6/+2
|
* tor-hsclient: Remove client nickname from the client key specifiers.Gabriela Moldovan2024-02-221-5/+2
| | | | Closes #1283
* arti, arti-client, tor-keymgr: Remove keystore dir configuration.Gabriela Moldovan2024-02-212-30/+3
| | | | Closes #1202