summaryrefslogtreecommitdiff
path: root/crates/arti-client/src
Commit message (Collapse)AuthorAgeFilesLines
...
* rpc: Pass around our rpc::Context in an Arc.Nick Mathewson2024-06-101-3/+3
| | | | | | | | Formerly we used a Box. That was okay at first, but now that we want RPC methods to be able to invoke other RPC methods, we don't want the Invocable methods to have to consume the Context. This requires that Context become Sync.
* 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