summaryrefslogtreecommitdiff
path: root/crates/arti/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* 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
| * Fix grammar erroreta2022-06-161-1/+1
| |
| * arti: Enable some pre-config loggingIan Jackson2022-06-161-2/+16
| |
| * arti: Introduce closure which will be used for pre-config loggingIan Jackson2022-06-161-31/+52
| | | | | | | | Right now this is an IEFI and therefore a no-op.
* | Merge branch 'main' into 'accel-features'Nick Mathewson2022-06-161-1/+5
|\ \ | | | | | | | | | # Conflicts: # crates/arti-client/Cargo.toml
| * | Remove "rustls" from "full", for license reasons.Nick Mathewson2022-06-151-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rustls uses ring, which uses code from BoringSSL, which derived from OpenSSL before OpenSSL changed their license. So ring is currently under 3BSD/SSLEay licenses, which aren't GPL-compatible, which may be a problem for some people. See #493.
* | | Add "accel-*" features to arti-client and arti.Nick Mathewson2022-06-131-0/+9
|/ / | | | | | | | | | | | | | | | | | | These need to be optional: they improve performance by shifting to asm implementations, which may not be everybody's idea of good practice. These are not 'pure' features, since they select one implementation but disable another. Therefore they don't go in `full`. Closes #441.
* / Document "full", "experimental" in toplevel crate documentation.Nick Mathewson2022-06-131-41/+56
|/ | | | | Also, unify the features documentation format for those two crates, and document previously undocumented features there.
* lints: Make lint blocks consistentIan Jackson2022-05-311-1/+0
| | | | The remaining consequences of running add_warning
* lints: Add let_unit_value allow to all cratesIan Jackson2022-05-311-0/+1
| | | | | From running add_warning, with manual picking of the right hunks/lines.
* lints: arti: Move some allows outside the auto blockIan Jackson2022-05-311-2/+4
| | | | These need to survive.
* lints: Add lint block delimiters to every crateIan Jackson2022-05-311-0/+2
| | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* Split TorClientConfig out of ArtiConfig, and Resolvable traitIan Jackson2022-05-241-7/+5
| | | | | | | | | | | | This gets rid of `#[serde(flatten)]` which prevents serde_ignored (and other kinds of introspection) from working properly. The price is now that the toplevel has to deal with two configuration objects. The Resolvable trait is overkill right now, but is going to do More Things in a moment. In particular, we need the impl on tuples, so that the whole config can be processed in one go.
* Apply fs-mistrust to logfile directories.Nick Mathewson2022-05-241-1/+10
|