| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
Closes #1202
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
| |
Service nicknames are represented by `HsNickname`, so let's
rename `HsClientSpecifier` to `HsClientNickname`.
|
| |
|
|
|
|
| |
This introduces an internal `OnionServiceStateMgr` trait, which enables
us to store the `StateMgr` inside the `OnionServiceState` (without
having to parameterize `OnionServiceState` on `S: StateMgr`).
|
| |
|
|
| |
This reduces code duplication.
|
| |
|
|
|
| |
This code was duplicated by `create_inner()` and
`create_onion_service()`.
|
| |
|
|
|
|
|
| |
The `StateMgr` is currently only needed in `launch()`, so we don't
really need to store it.
This allows us to unparameterize OnionService.
|
| |
|
|
|
| |
This will be used from `arti` to create an `OnionService`, to implement
the `arti hss` command.
|
| |
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
| |
This addresses a `TODO HSS` about not using `internal!` for an error
caused by misconfiguration.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
tor-keymgr: Abolish ArtiNativeKeystoreConfig::expand_keystore_dir.
See merge request tpo/core/arti!1867
|
| | |
| |
| |
| |
| |
| | |
This resolves a `TODO HSS` in arti-client.
Part of #1187
|
| | | |
|
| |/
|
|
|
|
|
|
| |
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).
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
dirmgr: Make the `dir_mgr_config` method public
Closes #1175
See merge request tpo/core/arti!1847
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |/ |
|
| | |
|
| |\
| |
| |
| |
| | |
arti_client: Cleanup around keymgr feature and config
See merge request tpo/core/arti!1832
|
| | |
| |
| |
| |
| | |
keymgr is always on when it is needed, so experimental-api isn't
needed here.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| |/
|
|
|
| |
Call expand_state_dir only once. We'll reuse this value, another
time, too.
|
| | |
|
| |
|
|
|
| |
The previous name was ambiguous, and confusable with KeyPathError
(of which it is, basically, a variant).
|
| |
|
|
|
|
| |
Currently some components do this one way, and some the other. This
is confusing. We should do it one way. This way is slightly better
because it makes navigation with `grep` easier.
|
| |
|
|
|
|
| |
This variable contains precisely the value of cache_dir from
arti_client::config::StorageConfig and it should therefore have the
same name.
|
| | |
|
| | |
|
| |
|
|
| |
We don't use this now that we have a `KeyMgrBuilder`.
|
| |
|
|
| |
Closes #1037
|
| |\
| |
| |
| |
| | |
Added macro for StorageConfig expand dir
See merge request tpo/core/arti!1728
|