| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
| |
This option will primarily be used by integrators who want to modify
the configuration, either directly or via RPC, before launching Arti
completely.
|
| |\
| |
| |
| |
| |
| |
| | |
Set socket buffer sizes (`SO_SNDBUF` and `SO_RCVBUF`) for proxy sockets
Closes #2500
See merge request tpo/core/arti!3957
|
| | | |
|
| | | |
|
| |/
|
|
|
|
| |
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.
|
| |\
| |
| |
| |
| |
| |
| | |
arti: Add option and documentation for http connect, then mark it stable.
Closes #2409
See merge request tpo/core/arti!3811
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This option affects all socks listeners, because:
- We don't have a convenient way to associate an option with each
port.
- The main purpose of having this option is as a switch in case we
discover a major problem with this code.
|
| |/
|
|
|
| |
(With no-default-features there is no runtime, and that still causes
a compiler error.)
|
| |
|
|
|
| |
Instead of doing this when we construct the listeners, we can do it
in a separate method, to simplify the return type.
|
| |
|
|
| |
Part of #2301.
|
| |
|
|
| |
Part of #2301.
|
| |
|
|
|
|
|
|
|
|
|
| |
Uses the standard clap error messages, for example:
```text
$ cargo run -p arti -- proxy -p 123a
error: invalid value '123a' for '-p <PORT>': invalid digit found in string
For more information, try '--help'.
```
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Use anyhow::Context to wrap error in useful message.
|
| |
|
|
|
|
| |
This was a little funny, since the other storage elements are
declared in tor-client. Fortunately, our stacked configuration
logic handles this fine.
|
| |
|
|
|
| |
This allows applications to find out where arti is listening when
arti has been configured to listen with the port "auto".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the proxy and dns modules only had "be a proxy"
functions that ran forever. Now they have functions that bind to
listeners and return a separate "be a proxy" future that runs
forever.
This lets us simplify some kludges in subcommands::proxy. More
importantly, it will let us return the bound-to ports so that
subcommands::proxy can write them to disk.
This is a break in experimental-apis, which does not require a
semver change.
|
| | |
|
| |
|
|
| |
Closes #2225
|
| |
|
|
| |
This is _all_ renaming and comment adjustments.
|
| |
|
|
| |
I'm about to add another proxy type.
|
| | |
|
| |
|
|
|
|
| |
It's unlikely these arguments will be particularly useful, and omitting
skip_all can have security implications, so it's better to avoid it to
reflect good practice.
|
| |
|
|
|
| |
I've added these in places that are useful for the debugging that I've
been doing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
New cargo feature `metrics`, currently experimental.
New config option `metrics.prometheus.listen`. Uses standard `Listen`
syntax, but not every configuration is supported due to upstream
limitations.
If the config option is set, use metrics-exporter-prometheus to offer
an HTTP scrape endpoint. Or, if compiled out, fail.
Currently there are no actual metrics exported at all.
|
| |
|
|
|
|
|
|
| |
Introduce ToplevelRuntime as an alias, and use it in the top-level
programs.
Now none of the principal protocol implementation code has access to
the executor's toplevel entrypoint, and can't call it by mistake.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
| |
If `socks_listen` is disabled, we're not actually running in SOCKS mode.
|
| |
|
|
| |
Closes #1569
|
| |
|
|
|
|
|
|
| |
No functional changes, this is just code motion.
This helps organize the code in `arti/src/lib.rs` a bit. It now only
contains the argument parsing and various other setup, and all the
subcommands are contained in separate modules.
|
| |
|
|
| |
No functional changes, this is just code motion.
|
|
|
The implementation for `arti proxy` will soon be relocated to this new
module.
|