| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, run
```
git grep -l "^edition =" |
xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```
Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.
Third, run cargo fmt again.
|
| |
|
|
|
| |
It would be better to take a more sophisticated approach;
see #2048.
|
| |
|
|
|
| |
These helpers seem potentially broadly useful, and only really
discoverable if they're here.
|
| |
|
|
|
|
| |
MAX_RESTRICTED_DISCOVERY_CLIENTS.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2266#note_3051758
|
| |
|
|
| |
descriptor.
|
| | |
|
| |
|
|
| |
Closes #1490
|
| |
|
|
|
| |
Change Path::display to this new function, in call sites where it's
being used for a diagnostic.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
The private ExpiryError type is now err::StateExpiryError.
We'll fix up the local alias in the HasKind impl in a moment.
|
| | |
|
| |
|
|
| |
This will be used when a keystore race is detected.
|
| | |
|
| |
|
|
| |
This is now tor_persist::Error containing ErrorSource::AlreadyLocked.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
We're going to change the payload of StateDirectoryInaccessible to
tor_persist::Error, since that's what tor_persist::state_dir gives us,
but then we can't use it here.
|
| |
|
|
|
| |
This is not typically wrong, but it may become wrong if we do not
tidy up MissingHsIdKeypair in the future. The TODO now refers to
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This is another type of fatal error.
|
| |
|
|
| |
We're about to use this (in the publisher reactor).
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
If we can't store IPT details, we mustn't publish the corresponding
IPT. But that's not fatal; maybe we can store later. So introduce a
new IptStoreError type, and change the return value from some
functions that are going to be able to fail that way.
This introduces a new TODO HSS: we need the publisher to be able to
retry after such a failure.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the `tor_keymgr::Error` type was `Box<dyn KeystoreError>`.
This forced us to impl `KeystoreError` for any error returned by the
keymgr (including those that were not coming from a `Keystore` impl).
Now, `tor_keymgr::Error` is an non-exhaustive enum and the `Box<dyn
KeystoreError>` opaque error type is only returned from `Keystore` impls
The reason we're keeping the `dyn KeystoreError` error type is because
it enables `Keystore` implementors to use their own error types. Without
it, they would have to choose from our (closed) set of error variants,
which may not be suitable for their keystore. See #901.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
We only return this error if the identity key is missing from the
keystore.
This change will also help us abolish the `.role()` method on
`KeySpecifier`s (it was only needed for populating the string of a
`MissingKey` error).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This simplifies error handling in `OnionService`.
Closes #1052
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This requires yet more plumbing—this time, of HsCircPool and
NetDirProvider.
|
| |
|
|
| |
There are many TODOs and no tests, but it does compile.
|
| |
|
|
|
|
|
|
|
|
| |
At the very least, I need FatalError to be distinct:
IptEstablisher::new ought not to fail unless everything is terrible.
Add a the Spawn variant to FatalError (that we'll need soon) and the
Bug variant (which it seems likely we might need).
This also gets rid of the crate-level Result alias.
|
| |
|