| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
| |
This is part of rationalizing the structure of TorClient so we can
refactor startup logic, and so that RPC code can reason about object
identity. See #2469.
|
| |\
| |
| |
| |
| | |
Fix various typos
See merge request tpo/core/arti!3781
|
| | | |
|
| | |
| |
| |
| |
| | |
This is not exactly the most _urgent_ superuser functionality,
but it is probably the easiest to implement.
|
| |/
|
|
|
| |
When connection point provides superuser support, provide a
(currently inert) RpcSuperuser object to the RPC session.
|
| | |
|
| |
|
|
|
| |
Instead of doing this when we construct the listeners, we can do it
in a separate method, to simplify the return type.
|
| |
|
|
| |
Run maint/add_warning
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
| |
Closes #1830.
|
| |\
| |
| |
| |
| | |
rpc: Tolerate NotFound on configured connect point directory.
See merge request tpo/core/arti!2735
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
If Arti tries to bind to a directory of connect points, and that
directory isn't there, the right behavior is to treat the directory
as if it were empty. Otherwise, the user would have to create
the default connect point directory (as empty) before Arti would
start.
|
| |/
|
|
|
|
| |
Formerly this was a conditional method argument, which is a huge
antipattern. Now it is unconditionally present, as `Option<T>` for
a type that is uninhabited when RPC isn't supported.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
We want to have every option that applies to a connect point (other
than file or dir) exist both as a default version, and as a per-file
override. This approach lets us do so: We store _builders_ for
these options in the config, and then use ExtendBuilder to merge
them together.
(There aren't yet any options other than 'enable',
but there will be before long.)
|
| |
|
|
|
| |
Per discussion with Diziet, these aren't really "overriding"
anything; they're the actual options for a single connect point.
|
| | |
|
| |
|
|
|
|
| |
This adds the options currently specified in rpc-connect-point.rs,
though they don't do anything yet. We still have to implement the
correct defaulting behavior.
|
| |
|
|
|
|
|
|
|
| |
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`.
|
| |
|
|
| |
Based on review from @opara.
|
| |
|
|
|
|
| |
Previous documentation was more-or-less meant for the Arti developer
only. This new documentation is intended for actual users of RPC
functionality. It's meant to be extracted with `maint/rpc-doc-tool`.
|
| |
|
|
|
|
|
| |
When specifying a delegation, the template user must also say what
type they're delegating to.
We're going to use this to document and expose delegations.
|
| |
|
|
|
|
|
| |
Without this, we get a panic on startup when running with RPC!
(This stresses the need for an integration test for RPC;
I will start writing that after the Python wrapper lands.)
|
| |
|
|
|
|
|
| |
Renamed address to tcp_address, and made it optional, so that later
we can have a unix_path, etc.
On deser side, add support for unrecognized listener types.
|
| | |
|
| |
|
|
|
|
|
|
| |
Currently this behaves the same as get_proxy_info,
but this may change in the future, if we introduce RPC-unsuitable
proxy ports.
(Also rename the get_proxy_info method to avoid x_ prefix.)
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
(This is a bit trickier than I would like, but it ensures that we
never return a "not initialized yet" code.)
|
| |
|
|
|
|
|
| |
We'll need this for our rpc-library code to meaningfully open SOCKS
connections.
Closes #1523.
|
| |
|
|
|
|
|
| |
This type exists in the `arti` crate. It wraps and delegates to
`arti_rpcserver::RpcSession`. Subsequent commits will use it to
expose information from the `arti` crate to the RPC system; right
now it does nothing.
|
|
|
On its own, this might not seem like a huge improvement, but it will
later let us implement these RPC methods for types that can't
reasonably implement ClientConnectionTarget.
It also serves as a proof of concept that special-method invocation
can actually work, so that we can build things like this in cases
where introducing a trait isn't practical.
Closes #1427
|