aboutsummaryrefslogtreecommitdiff
path: root/crates/arti/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* arti: Use ConfigurationSources::try_from_cmdlineIan Jackson2023-08-071-3/+3
| | | | | | | | | | This will allow us to proceed if * the default config file locations can't be established (eg due to failure of the `directories` crate), but * configuration files are explicitly specified, so the defaults wouldn't be used
* arti: Add context to default config files error messageIan Jackson2023-08-071-1/+1
| | | | | | | | | | | | Improves the error mesage in #989 somewhat. Before: target/debug/arti: error: Can't construct project directories to resolve a path element After: target/debug/arti: error: identify default config file locations: Can't construct project directories to resolve a path element
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-101-0/+1
|
* Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | Closes #950.
* lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|
* RPC: tell the `arti` SOCKS code about an RpcMgr object.Nick Mathewson2023-06-051-13/+23
| | | | | It will use this to find which TorClient to use when opening a stream.
* print both static sqlite/tls when 'static' feature is usedtrinity-1686a2023-05-081-2/+2
|
* RPC: Start on plumbing TorClient into our RPC codeNick Mathewson2023-05-041-2/+7
| | | | | Because of #837, we won't be able to work with _every_ TorClient<R>, so I'm only going to be using TorClient<PreferredRuntime> for now.
* RPC: Move the "listen" part of the RPC listener code to `arti`.Nick Mathewson2023-05-041-21/+30
| | | | | | | | | Now there's a module in `arti` that runs the loop for an RPC listener. The part of the old `listener` module that made the framed connections is now part of the `Session` object. There is now yet another a temporary location for the pipe; we should pick something better. At least now it's configurable.
* rpc: Make an RpcMgr type to own the DispatchTable.Nick Mathewson2023-05-041-1/+3
| | | | | | | | | In the future, this will probably hold more data as well, like a TorClient and some configuration info. The TorClient will present an issue; I've made comments about that. Closes #820
* rpc: Add a demonstration feature to "arti"Nick Mathewson2023-04-121-0/+28
| | | | | | | | It's experimental, and tokio-only. To enable it, build with the "rpc" feature turned on, and connect to `~/.arti-rpc-TESTING/PIPE`. (`nc -U` worked for me) I'll add some instructions.
* ErrorHint: Report hints for arti_client errors.Nick Mathewson2023-01-271-4/+11
|
* Disable clippy::unlinlined-format-argsNick Mathewson2023-01-271-0/+1
| | | | | | | | This warning kind of snuck up on us! (See #748) For now, let's disable it. (I've cleaned it up in a couple of examples, since those are meant to be more idiomatic and user-facing.) Closes #748.
* cfg compilation: Add two allowsIan Jackson2022-11-181-0/+1
|
* Upgrade to clap 3: replace deprecated functionsGabriel de Perthuis2022-11-041-28/+36
| | | | | | | | | | | Also replace Arg::takes_value with Arg::action to configure flags that don't take parameters vs options that do. This makes it easy to upgrade to clap 4. Tested deprecations with: cargo check --workspace --all-features --features clap/deprecated
* Upgrade to clap 3 with minimal changesGabriel de Perthuis2022-11-041-6/+6
| | | | | | | | This removes the last cargo audit override (for the unmaintained ansi_term). Don't mark options as required when they have default values: see <https://github.com/clap-rs/clap/pull/3793>.
* Run add_warnings.Nick Mathewson2022-11-031-0/+1
|
* cargo fmt to remove blank linesIan Jackson2022-10-121-1/+0
| | | | | | | Apparently cargo fmt doesn't like these, which my perl rune didn't delete. This commit is precisely the result of `cargo fmt`.
* Replace all README copies in src/lib.rs with includesIan Jackson2022-10-121-186/+1
| | | | | | | | The feature we want is `#[doc = include_str!("README.md")]`, which is stable since 1.54 and our MSRV is now 1.56. This commit is precisely the result of the following Perl rune: perl -i~ -0777 -pe 's{(^//!(?!.*\@\@).*\n)+}{#![doc = include_str!("../README.md")]\n}m' crates/*/src/lib.rs
* Add pt-client and bridge-client features to arti and arti-clientIan Jackson2022-10-121-0/+2
|
* document TOR_SKIP_CONTROLPORTTEST=1 for no warning on Tor Browsertrinity-1686a2022-09-031-9/+7
|
* docs: Move Tor Browser part to arti top-level (rustfmt etc.)Ian Jackson2022-09-021-16/+16
|
* README: Remove caveats from Tor Browser instructionsIan Jackson2022-09-021-3/+1
|
* README: Fix links to Tor BrowserIan Jackson2022-09-021-3/+4
|
* docs: Move Tor Browser part to arti top-level (syntax fixup)Ian Jackson2022-09-021-6/+16
|
* docs: Move Tor Browser part to arti top-level (code motion)Ian Jackson2022-09-021-0/+44
|
* README: change an NB to NoteIan Jackson2022-09-021-1/+1
| | | | https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/717#note_2834307
* READMEs: arti (CLI): Remove several caveats, and tidyingIan Jackson2022-09-021-12/+24
|
* Mark a few APIs as experimental in docs.Nick Mathewson2022-08-301-0/+1
| | | | | | | | For example, see https://tpo.pages.torproject.net/core/doc/rust/arti/fn.run.html : this isn't labeled as `experimental-api`, but it should be. These APIs were found by poking around in the `arti` crate.
* small refactoring to reduce duplicaiton of config reloadingtrinity-1686a2022-08-271-5/+5
|
* connect SIGHUP to watch_cfgtrinity-1686a2022-08-271-16/+1
|
* WIP: listen for sighups and reconfigure?Nick Mathewson2022-08-261-0/+13
|
* tor-config Listen: Rename localhost_port_legacy (from _deprecated)Ian Jackson2022-08-251-2/+2
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/602#note_2830847
* arti: cfg: Rename `*_port` to `*_listen` and change the typeIan Jackson2022-08-251-2/+5
| | | | | | | This commit largely follows the example for resolve_alternative_specs. The difference is that there are two fields, so we use a macro to avoid recapitulating the field names.
* config sources: Read arti.d as well as arti.tomlIan Jackson2022-08-251-3/+3
| | | | Fixes #474 aka #271
* enable doc_auto_cfg feature on every crate when documenting for docs.rstrinity-1686a2022-08-241-0/+1
|
* arti: Do not allow running as root.Nick Mathewson2022-08-241-0/+4
| | | | | | This can be overridden with `application.allow_running_as_root`. Part of #523.
* arti: Add support for process hardeningNick Mathewson2022-08-151-1/+11
| | | | | | | | | | | | | This is a compile-time feature with an associated configuration flag, both enabled by default. When it's turned on, hardening prevents the arti process from dumping core or being attached to by low-privileged processes. (This is a defense-in-depth measure, not an absolute way to prevent attacks. For more information, see [`secmem_proc`](https://docs.rs/secmem-proc/0.1.1/secmem_proc/).) Closes #364.
* Add a few dire warnings about main; make main_main experimental.Nick Mathewson2022-08-111-2/+31
|
* Document more explicitly what "voiding a semver warranty" entailsNick Mathewson2022-08-111-1/+5
| | | | Closes #522.
* arti: `main_main` takes command-line arguments does not call exit()Nick Mathewson2022-08-111-3/+18
|
* arti: Move most public APIs behind `experimental-api`.Nick Mathewson2022-08-111-3/+21
| | | | | | | | | | | | | | | | | The remaining unconditionally public APIs are those related to our configuration objects, and the main_main() API. The rationale for making main_main() public is to have an actual entry point. The rationale for making the config APIs public is: 1. We really do intend for others to be able to read our configuration files using this API. 2. The structure of our configuration files is already part of our interface. Closes #530.
* arti: Add a feature flag for dns-proxy.Nick Mathewson2022-08-111-0/+10
| | | | | | | It remains on-by-default, so users shouldn't notice a difference, but it may help when we want to save a few bytes of binary size. Closes #532
* disable-fs-permission-checks: remove variable from help messageJim Newsome2022-07-191-1/+0
| | | | | This option doesn't take an argument. This change drops the argument from the `--help` message.
* Arti: Use synthetic argument to implement --disable-fs-permission-checksNick Mathewson2022-07-191-22/+11
| | | | | | | | | | | | | Now that configuring the environment variables related to fs permissions works properly, we don't need to use the "override" feature any more: we can just add the option to the configuration when appropriate. With this design, `--disable-fs-permission-checks` is now mostly an alias for `--option storage.permissions.dangerously_trust_everyone=true` Enabled by #483.
* Move responsibility for disable-fs-mistrust envvar.Nick Mathewson2022-07-191-4/+6
| | | | | | | The variable is now handled when building the configuration, and no longer needs to be special-cased. Closes #483.
* Run maint/add_warning crates/*/src/{lib,main}.rsIan Jackson2022-06-231-0/+3
| | | | Update all lint blocks
* Updated the warning message providing additional information about the type ↵0x4ndy2022-06-211-2/+1
| | | | of the proxy port.
* Merge branch 'config-fix' into 'main'Ian Jackson2022-06-161-30/+65
|\ | | | | | | | | | | | | Config handling and logging fixes Closes #480 See merge request tpo/core/arti!589