diff --git a/crates/arti/src/arti_defaults.toml b/crates/arti/src/arti_defaults.toml index 61a001dbd..dc1b82eca 100644 --- a/crates/arti/src/arti_defaults.toml +++ b/crates/arti/src/arti_defaults.toml @@ -106,7 +106,7 @@ request_max_retries = 32 request_loyalty = "50 msec" # Rules for client configuration -[client_config] +[addr_config] # Should we allow attempts to make Tor connections to local addresses? allow_local_addrs = false diff --git a/crates/arti/src/main.rs b/crates/arti/src/main.rs index 294e75183..97adea84f 100644 --- a/crates/arti/src/main.rs +++ b/crates/arti/src/main.rs @@ -95,7 +95,6 @@ use std::sync::Arc; use tor_client::{ config::circ::{CircMgrConfig, CircMgrConfigBuilder}, config::dir::{DirMgrConfig, DirMgrConfigBuilder, DownloadScheduleConfig, NetworkConfig}, - config::ClientAddrConfig, TorClient, TorClientConfig, }; use tor_config::CfgPath; @@ -105,7 +104,6 @@ use anyhow::Result; use argh::FromArgs; use serde::Deserialize; use std::collections::HashMap; -use std::path::PathBuf; use tracing::{info, warn}; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::prelude::*; @@ -229,10 +227,7 @@ impl ArtiConfig { async fn run( runtime: R, socks_port: u16, - statecfg: PathBuf, - dircfg: DirMgrConfig, - circcfg: CircMgrConfig, - addrcfg: ClientAddrConfig, + client_config: TorClientConfig, ) -> Result<()> { use futures::FutureExt; futures::select!( @@ -241,12 +236,7 @@ async fn run( let client = Arc::new(TorClient::bootstrap( runtime.clone(), - TorClientConfig { - state_cfg: statecfg, - dir_cfg: dircfg, - circ_cfg: circcfg, - addr_cfg: addrcfg - } + client_config, ).await?); proxy::run_socks_proxy(runtime, client, socks_port).await }.fuse() => r, @@ -321,6 +311,13 @@ fn main() -> Result<()> { } }; + let client_config = TorClientConfig::builder() + .state_cfg(statecfg) + .dir_cfg(dircfg) + .circ_cfg(circcfg) + .addr_cfg(addrcfg) + .build()?; + process::use_max_file_limit(); #[cfg(feature = "tokio")] @@ -329,7 +326,7 @@ fn main() -> Result<()> { let runtime = tor_rtcompat::async_std::create_runtime()?; let rt_copy = runtime.clone(); - rt_copy.block_on(run(runtime, socks_port, statecfg, dircfg, circcfg, addrcfg))?; + rt_copy.block_on(run(runtime, socks_port, client_config))?; Ok(()) } diff --git a/crates/tor-client/src/client.rs b/crates/tor-client/src/client.rs index 90c7fc23c..67b3c7b54 100644 --- a/crates/tor-client/src/client.rs +++ b/crates/tor-client/src/client.rs @@ -140,13 +140,13 @@ impl Default for ConnectPrefs { #[derive(Clone, Debug, Builder)] pub struct TorClientConfig { /// A directory suitable for storing persistent Tor state in. - pub state_cfg: PathBuf, + state_cfg: PathBuf, /// Configuration for the network directory manager. - pub dir_cfg: DirMgrConfig, + dir_cfg: DirMgrConfig, /// Configuration for the network circuit manager. - pub circ_cfg: CircMgrConfig, + circ_cfg: CircMgrConfig, /// Other client configuration. - pub addr_cfg: ClientAddrConfig, + addr_cfg: ClientAddrConfig, } impl TorClientConfig {