aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-client
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename one of the hint methods to hint_specificNick Mathewson2024-02-161-3/+10
|
* Use and document the new arti-client/anyhow featureNick Mathewson2024-02-151-0/+2
|
* Refactor and improve error hinting.Nick Mathewson2024-02-144-51/+114
| | | | | | | | | | | | 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 two structsIan Jackson2024-02-121-2/+1
| | | | | | Reviewing uses of `#[educe(default)]`, I came across these two places where it was applied to a non-generic struct without any special attributes on fields. std's derive will do just as well here.
* educe: Use std's default for enums where default variant is unitIan Jackson2024-02-121-10/+6
| | | | | | | | | | | | | 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.
* Merge branch 'delete-semvers' into 'main'Ian Jackson2024-02-051-1/+0
|\ | | | | | | | | Remove all semver.md files to start a fresh release round See merge request tpo/core/arti!1957
| * Remove all semver.md files to start a fresh release roundIan Jackson2024-02-051-1/+0
| |
* | Bump patch versions *with* dependency updateIan Jackson2024-02-051-1/+1
| | | | | | | | | | | | | | This crate has had new features added. It's 0.x. So bump in-tree dependencies' references: fs-mistrust
* | Bump minor versionsIan Jackson2024-02-051-21/+21
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bump the minor version of these crates, and update the in-tree dependencies. Recently published as fresh crates, let's just assume there are breaking changes: fslock-guard test-temp-dir Breaking API change affecting many many downstream crates: tor-rtcompat Downstream crates which we're (conservatively) assuming have tor-rtcompat types in their APIs: tor-rtmock tor-log-ratelim tor-rpcbase tor-llcrypto tor-protover tor-bytes tor-hscrypto tor-hspow tor-socksproto tor-checkable tor-cert tor-linkspec tor-cell tor-proto tor-netdoc tor-consdiff tor-netdir tor-congestion tor-persist tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy arti-client arti-rpcserver arti-config arti-hyper arti-bench arti-testing
* tor-hsservice: Use tor_persist::state_dirIan Jackson2024-02-012-2/+4
|
* tor-hsservice: Use tor_persist::state_dir, etc. (fmt)Ian Jackson2024-02-011-4/+3
|
* tor-hsservice: Use tor_persist::state_dirIan Jackson2024-02-011-8/+8
| | | | | | | | | | | | | | | | | | | | | | | We no longer do replay log locking in IptManager::new. Instead, we rely on the acquire_instance call in OnionService::launch, which ends up with ipt_mgr getting an InstanceHandle (which contains a lock guard). OnionServiceStateMgr is abolished; it existed to deal with the generics in the tor_persist::StateMgr API. state_dir has no generics (other than the T being loaded/stored). Many places (structs and argument lists) now have state_dir types which embody a path (or a CheckeDir) along with a lock, rather than separate path+lock+mistrust. The creation/startup code uses the new calls from state_dir. Other more minor changes: - StartupError::StateDirectoryInaccessible contains tor_persist::Error - test::create_storage_handles_from_state_dir changed and renamed, from _from_state_mgr. - replay::PersistFile's (separate) file lock is now fslock_guard's
* tor-hsclient: Rename HsClientSpecifier to HsClientNickname (fmt).Gabriela Moldovan2024-01-311-2/+2
|
* tor-hsclient: Rename HsClientSpecifier to HsClientNickname.Gabriela Moldovan2024-01-311-2/+2
| | | | | Service nicknames are represented by `HsNickname`, so let's rename `HsClientSpecifier` to `HsClientNickname`.
* Upgrade to strum 0.26Nick Mathewson2024-01-301-1/+1
|
* tor-hsservice: Store the StateMgr inside OnionServiceState.Gabriela Moldovan2024-01-181-3/+5
| | | | | | This introduces an internal `OnionServiceStateMgr` trait, which enables us to store the `StateMgr` inside the `OnionServiceState` (without having to parameterize `OnionServiceState` on `S: StateMgr`).
* arti-client: Move state_dir and mistrust handling to separate function.Gabriela Moldovan2024-01-181-11/+19
| | | | This reduces code duplication.
* arti-client: Move keymgr creation to TorClient::create_keymgr.Gabriela Moldovan2024-01-181-49/+34
| | | | | This code was duplicated by `create_inner()` and `create_onion_service()`.
* tor-hsservice: Do not store the StateMgr in OnionService.Gabriela Moldovan2024-01-181-13/+7
| | | | | | | The `StateMgr` is currently only needed in `launch()`, so we don't really need to store it. This allows us to unparameterize OnionService.
* arti-client: Add a function for creating OnionServices.Gabriela Moldovan2024-01-181-0/+58
| | | | | This will be used from `arti` to create an `OnionService`, to implement the `arti hss` command.
* tor-hsservice: Create a separate RunningOnionService type.Gabriela Moldovan2024-01-181-5/+8
| | | | | | | | This will enable us to construct non-launched (but configured) `OnionService`s. We need this, for example, for implementing the `arti hss` CLI command. Part of #1227
* arti-client Remove a TODO hs that is no longer relevant.Gabriela Moldovan2024-01-111-1/+0
|
* arti-client: Add ErrorDetail::KeystoreRequired.Gabriela Moldovan2024-01-113-4/+13
| | | | | This addresses a `TODO HSS` about not using `internal!` for an error caused by misconfiguration.
* arti-client: Turn a TODO hs into #858.Gabriela Moldovan2024-01-111-1/+1
|
* arti-client: Turn a TODO HSS into #1106.Gabriela Moldovan2024-01-111-1/+1
|
* Merge branch 'expand-keystore-dir' into 'main'gabi-2502024-01-112-6/+4
|\ | | | | | | | | tor-keymgr: Abolish ArtiNativeKeystoreConfig::expand_keystore_dir. See merge request tpo/core/arti!1867
| * tor-keymgr: Abolish ArtiNativeKeystoreConfig::expand_keystore_dir.Gabriela Moldovan2024-01-102-6/+4
| | | | | | | | | | | | This resolves a `TODO HSS` in arti-client. Part of #1187
* | tor-hsclient: Derive the KeySpecifier implementation (fmt).Gabriela Moldovan2024-01-101-4/+2
| |
* | tor-hsclient: Derive the KeySpecifier implementation.Gabriela Moldovan2024-01-101-3/+2
|/ | | | | | | | This addresses a `TODO HSS` about deriving the `KeySpecifier` implementation for client key specifiers. Note that we no longer have a key specifier type for intro auth keys (which are not supported anyway, see #1037).
* arti_client: Change ephemeral-service TODO HSS comments to #1186.Nick Mathewson2024-01-091-3/+3
|
* arti-client::client: remove TODO HSS that is no longer true.Nick Mathewson2024-01-091-2/+0
|
* arti-client::config: Turn a TODO HSS into #1185.Nick Mathewson2024-01-091-1/+1
|
* Remove pending semver entriesarti-v1.1.12Nick Mathewson2024-01-091-2/+0
|
* Followup patchlevel bumpsNick Mathewson2024-01-091-1/+1
|
* Followup minor version bumps.Nick Mathewson2024-01-091-1/+1
| | | | | | | | These crates had no changes previously, but they depend on crates that had breaking changes themselves. tor-linkspec tor-hspow
* Patchlevel version bumps in preparation for 1.1.12.Nick Mathewson2024-01-091-4/+4
| | | | | | | | | | | | | This crate doesn't have a meaningful public API, so it just gets a patchlevel bump: arti These crates had nonbreaking changes, and get a patchlevel bump: tor-rtcompat fs-mistrust tor-llcrypto tor-cert
* Breaking version bumps in preparation for 1.1.12.Nick Mathewson2024-01-091-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These crates have breaking changes on their own: tor-error tor-netdoc tor-dirmgr tor-keymgr Because of the breaking change in tor-error, and the fact that basically every crate publicly depends on tor-error (by implementing ErrorKind), we need to call this a breaking change on all of the following: tor-config tor-geoip tor-rtmock tor-log-ratelim tor-rpcbase tor-bytes tor-hscrypto tor-socksproto tor-cell tor-proto tor-netdoc tor-netdir tor-persist tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy arti-client arti-rpcserver arti-config arti-hyper arti-testing
* Merge branch 'public-dir-mgr-config' into 'main'Ian Jackson2024-01-092-1/+2
|\ | | | | | | | | | | | | dirmgr: Make the `dir_mgr_config` method public Closes #1175 See merge request tpo/core/arti!1847
| * dirmgr: Make the `dir_mgr_config` method publicEmil Engler2024-01-092-1/+2
| | | | | | | | | | | | | | | | | | | | | | This commit makes the `dir_mgr_config` method of the `TorClientConfig` struct public. It might be questionable whether we should make this function public or switch to a `TryInto` trait in general, which also seems like an even Rustier solution Rustier solution. Fixes #1175
* | Fix typosDimitris Apostolou2024-01-081-1/+1
|/
* arti-client: Add an accessor for the keystore config.Gabriela Moldovan2023-12-142-0/+6
|
* Merge branch 'keymgr_enabled_default' into 'main'Nick Mathewson2023-12-131-24/+12
|\ | | | | | | | | arti_client: Cleanup around keymgr feature and config See merge request tpo/core/arti!1832
| * arti_config: remove experimental-api as way to enable keymgr.Nick Mathewson2023-12-131-7/+4
| | | | | | | | | | keymgr is always on when it is needed, so experimental-api isn't needed here.
| * arti-client: use sub_builder for ArtiNativeKeystoreConfigNick Mathewson2023-12-131-10/+3
| | | | | | | | | | | | | | | | | | The sub_builder pattern changes `StorageConfigBuilder` so that instead of holding an `Option<ArtiNativeKeystoreConfig>`, it holds an `ArtiNativeKeystoreConfigBuilder`. This makes it a little more ergonomic to use from Rust, and lets us use defaults for the builder fields so that we can make them optional in our configuration.
| * arti_client: enable keymgr when keymgr feature is configuredNick Mathewson2023-12-131-11/+9
| | | | | | | | | | | | | | This change causes arti_client to have a configurable keymgr when the onion-service-service feature is present, so that you no longer need to configure "experimental" or "experimental-api" as well in order to get a working onion service.
* | arti-client: TorClient.storage_mistrust: Correct doc commentIan Jackson2023-12-131-1/+6
| |
* | tor-hsservice: Plumb state dir and its mistrust into ipt_mgrIan Jackson2023-12-131-1/+15
| | | | | | | | | | | | | | | | | | | | | | This is needed for the replay logs. It's a shame that CheckedDir is (i) a bit unergonomic (ii) has an extra bool in it, or we could pass one of those instead of these two arguments. Since HS's might be created after startup, TorClient must have these fields.
* | arti-client: Centralise state_dir variable (fmt)Ian Jackson2023-12-131-5/+2
| |
* | arti-client: Centralise state_dir variableIan Jackson2023-12-131-3/+4
|/ | | | | Call expand_state_dir only once. We'll reuse this value, another time, too.
* Add NOTEs about similar code for address types.Nick Mathewson2023-12-121-1/+6
|