Make elements of TorClientConfig private.

This commit is contained in:
Nick Mathewson 2021-10-19 15:29:36 -04:00
parent b42a6712c9
commit d245147c7f
3 changed files with 15 additions and 18 deletions

View File

@ -106,7 +106,7 @@ request_max_retries = 32
request_loyalty = "50 msec" request_loyalty = "50 msec"
# Rules for client configuration # Rules for client configuration
[client_config] [addr_config]
# Should we allow attempts to make Tor connections to local addresses? # Should we allow attempts to make Tor connections to local addresses?
allow_local_addrs = false allow_local_addrs = false

View File

@ -95,7 +95,6 @@ use std::sync::Arc;
use tor_client::{ use tor_client::{
config::circ::{CircMgrConfig, CircMgrConfigBuilder}, config::circ::{CircMgrConfig, CircMgrConfigBuilder},
config::dir::{DirMgrConfig, DirMgrConfigBuilder, DownloadScheduleConfig, NetworkConfig}, config::dir::{DirMgrConfig, DirMgrConfigBuilder, DownloadScheduleConfig, NetworkConfig},
config::ClientAddrConfig,
TorClient, TorClientConfig, TorClient, TorClientConfig,
}; };
use tor_config::CfgPath; use tor_config::CfgPath;
@ -105,7 +104,6 @@ use anyhow::Result;
use argh::FromArgs; use argh::FromArgs;
use serde::Deserialize; use serde::Deserialize;
use std::collections::HashMap; use std::collections::HashMap;
use std::path::PathBuf;
use tracing::{info, warn}; use tracing::{info, warn};
use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::prelude::*; use tracing_subscriber::prelude::*;
@ -229,10 +227,7 @@ impl ArtiConfig {
async fn run<R: Runtime>( async fn run<R: Runtime>(
runtime: R, runtime: R,
socks_port: u16, socks_port: u16,
statecfg: PathBuf, client_config: TorClientConfig,
dircfg: DirMgrConfig,
circcfg: CircMgrConfig,
addrcfg: ClientAddrConfig,
) -> Result<()> { ) -> Result<()> {
use futures::FutureExt; use futures::FutureExt;
futures::select!( futures::select!(
@ -241,12 +236,7 @@ async fn run<R: Runtime>(
let client = let client =
Arc::new(TorClient::bootstrap( Arc::new(TorClient::bootstrap(
runtime.clone(), runtime.clone(),
TorClientConfig { client_config,
state_cfg: statecfg,
dir_cfg: dircfg,
circ_cfg: circcfg,
addr_cfg: addrcfg
}
).await?); ).await?);
proxy::run_socks_proxy(runtime, client, socks_port).await proxy::run_socks_proxy(runtime, client, socks_port).await
}.fuse() => r, }.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(); process::use_max_file_limit();
#[cfg(feature = "tokio")] #[cfg(feature = "tokio")]
@ -329,7 +326,7 @@ fn main() -> Result<()> {
let runtime = tor_rtcompat::async_std::create_runtime()?; let runtime = tor_rtcompat::async_std::create_runtime()?;
let rt_copy = runtime.clone(); 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(()) Ok(())
} }

View File

@ -140,13 +140,13 @@ impl Default for ConnectPrefs {
#[derive(Clone, Debug, Builder)] #[derive(Clone, Debug, Builder)]
pub struct TorClientConfig { pub struct TorClientConfig {
/// A directory suitable for storing persistent Tor state in. /// A directory suitable for storing persistent Tor state in.
pub state_cfg: PathBuf, state_cfg: PathBuf,
/// Configuration for the network directory manager. /// Configuration for the network directory manager.
pub dir_cfg: DirMgrConfig, dir_cfg: DirMgrConfig,
/// Configuration for the network circuit manager. /// Configuration for the network circuit manager.
pub circ_cfg: CircMgrConfig, circ_cfg: CircMgrConfig,
/// Other client configuration. /// Other client configuration.
pub addr_cfg: ClientAddrConfig, addr_cfg: ClientAddrConfig,
} }
impl TorClientConfig { impl TorClientConfig {