summaryrefslogtreecommitdiff
path: root/crates/arti/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Refactor and improve error hinting.Nick Mathewson2024-02-141-4/+4
| | | | | | | | | | | | Instead of using complicated match statements, use downcasting to find error types that define specific hints. This also lets us define a reasonable hint-extractor for anyhow::Error, and use it when reporting errors in main. I've left an implementation of hint() in `impl Error`, to avoid breaking backward compatibility. Closes #1165.
* arti: Use Weak references for the reconfigurable modules (fmt).Gabriela Moldovan2024-01-251-6/+1
|
* arti: Use Weak references for the reconfigurable modules.Gabriela Moldovan2024-01-251-1/+10
| | | | | | | | | | | | | | | Previously, the `ProxySet` (and all the other `reconfigurable_modules`) were kept alive by the `watch_for_config_changes` background thread, which was preventing them from being dropped when `run()` exited. IOW, onion services never received the shutdown signal. Now `watch_for_config_changes` takes `Weak` references, and the only strong references to the modules are kept in the `reconfigurable_modules` local variable in `run()`, which is dropped when `run()` exits (e.g. on SIGINT). This allows onion services to execute their shutdown logic on CTRL-C. Part of #1244
* tor-hsservice: Add TODO about testing arti hss.Gabriela Moldovan2024-01-181-0/+1
|
* arti: Use OnionService to get the onion_name().Gabriela Moldovan2024-01-181-7/+19
|
* Give an error when user configured onion services with no support.Nick Mathewson2024-01-161-0/+2
| | | | | | | | | | | We do this by adding a stub config and config builder type, whose only purpose is to generate an error if anything is deserialized into it. (If this turns out not to be the best pattern, we can change it later, since this is all internal to the `arti` crate.) Closes #1184.
* tor-keymgr: Abolish ArtiNativeKeystoreConfig::expand_keystore_dir.Gabriela Moldovan2024-01-101-2/+2
| | | | | | This resolves a `TODO HSS` in arti-client. Part of #1187
* arti::lib: Downgrade "TODO HSS" commentsNick Mathewson2024-01-091-2/+2
| | | | These are not "must fix before releasing onion services".
* arti: Fix log message typo.Gabriela Moldovan2023-12-141-1/+1
|
* Merge branch 'return-of-the-son-of-arti-todos' into 'main'Nick Mathewson2023-12-141-26/+36
|\ | | | | | | | | Resolve Arti crate todos, redux See merge request tpo/core/arti!1833
| * arti: Use a macro to declare modules as conditionally public.Nick Mathewson2023-12-131-25/+36
| | | | | | | | | | (We can't use `visibility::make(pub)` or `visible` here. Try it yourself if you don't believe me!)
| * arti: conditionally expose onion_proxy module when experimental-api is enabledNick Mathewson2023-12-121-4/+4
| |
| * Remove TODOs obsoleted by onion service reconfiguration.Nick Mathewson2023-12-121-1/+0
| | | | | | | | (This was solved with !1798)
* | arti: Print out the onion address retrieved from StateMgr.Gabriela Moldovan2023-12-141-1/+15
| |
* | arti: Add an hss subcommand.Gabriela Moldovan2023-12-141-2/+46
|/ | | | Part of #1071
* Reconfigure onion services when their configuration changes.Nick Mathewson2023-12-051-19/+4
| | | | Closes #1089.
* arti: Make reconfiguration slightly more abstractNick Mathewson2023-12-051-1/+13
| | | | | | | | | | Now instead of having a hardwired list of of things to reconfigure, the watch_cfg module now has a vector of ReconfigurableModule. As noted in the documentation, I don't intend that this should be our final API here: It is deliberately not exposed. When we revisit the structure of `arti` more, we should probably do this differently.
* Bump to clap 4 and resolve compiler errors.Nick Mathewson2023-11-151-2/+2
|
* HSS: Do not drop ProxySet immediately - let HS services continue to run (fmt)Ian Jackson2023-10-191-2/+4
|
* HSS: Do not drop ProxySet immediately - let HS services continue to runIan Jackson2023-10-191-4/+19
| | | | Dropping the ProxySet causes all the services to terminate.
* Merge branch 'generic-listen' into 'main'Nick Mathewson2023-10-161-27/+23
|\ | | | | | | | | arti, tor-config: Allow listening on generic addresses for SOCKS and DNS. See merge request tpo/core/arti!1613
| * Do not writelns in Display, undo localhost_port_legacy changes.Jani Monoses2023-09-251-1/+1
| |
| * arti, tor-config: Allow listening on generic addresses for SOCKS and DNS.Jani Monoses2023-09-221-27/+23
| |
* | arti: Actually launch the onion service code.Nick Mathewson2023-10-051-0/+9
| |
* | arti: add a set of OnionServiceProxyConfig types.Nick Mathewson2023-10-031-0/+4
|/ | | | | These don't yet attach to the rest of the ArtiConfig, or actually launch any onion services, but they're a start.
* 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
|