| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Our documentation had dated to an older version of our RPC stream
code, where all streams were automatically optimistic.
But as explained, our use of "optimistic"ness in RPC stream code is
now purely internal, to make it possible to get an DataStreamCtrl.
This isn't user-visible in our rpc_conn_open_stream code.
Closes #1583
|
| |\
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| | |
rust-analyzer keeps re-wrapping this piece for me, even though
rustfmt doesn't complain.
|
| | |
| |
| |
| | |
Information _is_ passed to the RpcMgr, via the argument to new_connection.
|
| | |
| |
| |
| |
| | |
The RpcMgr does indirectly hold a reference to the client,
via its make_session argument.
|
| | |
| |
| |
| | |
We _do_ have error detection from this function, and have for ages.
|
| |/
|
|
|
| |
This was necessary before we had support for implementing
RPC methods on generic types.
|
| |
|
|
|
|
|
|
| |
This method doesn't actually create a new stream; it creates a
single-use client object that can be used with SOCKS to launch
a new stream, and capture an RPC object for that stream.
Closes #1664.
|
| | |
|
| |\
| |
| |
| |
| | |
clippy: deny `mod_module_files`
See merge request tpo/core/arti!2689
|
| | |
| |
| |
| |
| |
| | |
Denies 'mod.rs' files for consistency.
https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
| |
In 1.83, this warning triggers on many of our crates.
We're thinking of fixing them all, but for now,
we're going to disable the warning.
This is part of #1765.
|
| |
|
|
| |
This currently is not implemented.
|
| |
|
|
|
|
| |
Rather than using `arti_client::config::path_resolver()`, third-party
code can get the path resolver using `TorClientConfig`s
`AsRef<CfgPathResolver>` impl instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a big change across multiple crates since there isn't a good way
to break it up.
This changes the signature of `CfgPath::path` to:
```
pub fn path(&self, path_resolver: &CfgPathResolver) -> Result<PathBuf, CfgPathError> {
```
Making this change means that our global `CfgPathResolver` needs to be
stored in the 'arti-client' library instead of `tor-config-path`, and
must be passed through to anything that calls `path` to expand the
variables.
|
| |
|
|
|
| |
Also updated other packages to get `CfgPath` directly from
`tor-config-path' instead of 'tor-config'.
|
| |
|
|
|
|
|
|
| |
And document the Cargo features.
This compiles in the memquota support for people who depend directly
on tor-memquota. But all our in-tree dependencies turn off default
features, so this doesn't have any effect for in-tree crates.
|
| |
|
|
|
| |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2561#note_3097443
|
| |
|
|
|
| |
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2561#note_3097442
|
| |
|
|
|
| |
Work around awkward cargo behaviour and allow us to more reliably test
disabled features, even if they're enabled by default at lower levels.
|
| |
|
|
|
|
|
|
|
| |
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`.
|
| |\
| |
| |
| |
| | |
Disable a lot of dead code warnings and add a default-runtime feature in arti
See merge request tpo/core/arti!2551
|
| | |
| |
| |
| |
| |
| |
| | |
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-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 way we have a more intuitive layout, where all C Tor keystore
configuration is under the `ctor` key.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2481#note_3090486
|
| |
|
|
|
| |
This is intentionally partially mis-indented to make this more
reviewable (in case the reviewer isn't using `ignore-all-space`).
|