| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Our spec says that when the RPC client has said "I require you to have
feature X" and we don't have it, we need to include the feature(s)
we don't have in an `rpc:unsupported_features` field of our error.
Also, add an integration test for this behavior.
Closes #1662
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In older versions of the rpc spec, this field held a serialized
version of the Arti error object. That's no longer the design: now
it provides a way for specific errors to include extra, specified,
machine-readable data. For more information see the section
"Errors" in rpc-meta-draft.md
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These are not regular ErrorKinds, since they can never occur in an
error that's meant to be returned from a Rust API like
`arti-client`. Instead, they only exist for errors returned from
RpcError.
(I can't find the place where we discussed this previously, but the
rationale is that if an ErrorKind never makes sense in response to
something that the user does from Rust, we should never have that be
an ErrorKind. The fact that the removed kinds do not actually
appear outside the RPC system suggests that this is reasonable.)
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
I'm about to remove HasKind from InvokeError, which would otherwise
break this code.
These errors are all in fact internal errors, since in this context
they can only stem from incorrectly formed calls to
`invoke_special_method`.
|
| | | | |
| | | |
| | | |
| | | | |
In some cases, the tor_error::ErrorKind names were nicer.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We'll use this to make RpcErrors directly, without having to go
through an error that implements HasKind.
Later, we'll add the ability to set the `data` fields on an RpcError.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This change will let us start removing the not-entirely-logical
`Rpc.*` variants from tor_error::ErrorKind.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
This is about to be a public competitor with tor_error::ErrorKind.
|
| | | | | |
|
| |/ / / |
|
| | |/
|/|
| |
| |
| | |
"Suppress" rather than "fix": this pattern is intentional, and
makes it clear that we're doing an exhaustive match.
|
| |\ \
| | |
| | |
| | |
| | | |
tor-key-forge: Minor cleanups and reformatting
See merge request tpo/core/arti!2552
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
`KeypairData` is already in scope, so there's no need to fully-qualify
it.
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Disable a lot of dead code warnings and add a default-runtime feature in arti
See merge request tpo/core/arti!2551
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now one can do a minimal build with
cargo build -p arti --no-default-features --features=default-runtime
rather than needing to specify tokio,native-tls.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now
cargo check --workspace --no-default-features --all-targets
cargo build -p arti --no-default-features --features=memquota,tokio,native-tls
are both clean.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-chanmgr: update comments about selecting pending channels
See merge request tpo/core/arti!2544
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-chanmgr: refactored to remove `with_channels` and added `PendingChannelHandle`
See merge request tpo/core/arti!2538
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This handle contains all of the details required to remove or replace a
pending channel entry from the channel map.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
These methods on `MgrState` acquire a lock, and it's easy for calling
code to also try to acquire the same lock within the closure, causing a
deadlock. It's better to not expose these methods.
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Best reviewed with the '-w' flag to hide whitespace changes.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This moves most of the channel map logic from
`AbstractChanMgr::choose_action` to `MgrState::request_channel`.
This is working towards being able to remove
`MgrState::with_channels{,_and_params}`.
|
| | |_|_|/ /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously I had assumed that `std::os::linux` also existed on
android, based on the documentation of
`std::os::linux::net::SocketAddrExt`. That is not, however, true.
This should fix the `check-targets` CI job.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-config: Use a polling watcher on non-windows platforms that don't have inotify.
Closes #1644
See merge request tpo/core/arti!2547
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Part of #1644
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This enables us to make use of the unfortunately-necessary test-specific
code path.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When testing, compare the contents of the files too, not just their
mtime Otherwise, because the polling backend detects changes based on
mtime, if the test creates/writes files too fast, it will fail to notice
changes (this can happen, for example, on a tmpfs).
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The default is 30s, which feels a bit too long.
Also, when testing, we use a much shorter interval.
This is meant to be a temporary solution, so we hard-code the interval
rather than make it configurable.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
inotify.
On windows and platforms that support inotify (i.e. linux and android),
we continue using the recommended watcher. On platforms that use kqueue,
we switch to a polling watcher to work around a [notify bug] that
manifests when using a non-recursive watcher to watch a directory.
This commit is best reviewed with `git diff --ignore-all-space`.
Closes #1644
[notify bug]: https://github.com/notify-rs/notify/issues/644
|
| | | | | | | |
|
| | | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | | |
This type will soon become platform-dependent, so I am preemptively
adding a type alias.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
general::SocketAddr: Specify and implement string representations.
Closes #1681
See merge request tpo/core/arti!2519
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
(This turned up another place where we need documentation.)
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The fuzzer makes sure that whatever we can parse, we can format into
an object that is parsed in the same way.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This matches our parsing, and our general rule that our parser
defers to SocketAddr::from_pathname.
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
Needed for tests.
|
| | | |_|/ /
| |/| | |
| | | | |
| | | | | |
Closes #1681.
|
| |\ \ \ \ \
| |_|/ / /
|/| | | |
| | | | |
| | | | | |
arti: remove 'relay' subcommand and 'arti-relay' dependency
See merge request tpo/core/arti!2542
|