diff --git a/appmgr/src/bin/embassyd.rs b/appmgr/src/bin/embassyd.rs index ba120cc57..f89583886 100644 --- a/appmgr/src/bin/embassyd.rs +++ b/appmgr/src/bin/embassyd.rs @@ -194,8 +194,12 @@ async fn inner_main( let tor_health_ctx = rpc_ctx.clone(); let tor_client = Client::builder() .proxy( - Proxy::all(format!("socks5h://{}:{}", rpc_ctx.host(), rpc_ctx.port())) - .with_kind(crate::ErrorKind::Network)?, + Proxy::all(format!( + "socks5h://{}:{}", + rpc_ctx.tor_socks.ip(), + rpc_ctx.tor_socks.port() + )) + .with_kind(crate::ErrorKind::Network)?, ) .build() .with_kind(crate::ErrorKind::Network)?; diff --git a/appmgr/src/context/rpc.rs b/appmgr/src/context/rpc.rs index 616d7ed3b..73bbeaa10 100644 --- a/appmgr/src/context/rpc.rs +++ b/appmgr/src/context/rpc.rs @@ -1,6 +1,6 @@ use std::borrow::Cow; use std::collections::{BTreeMap, VecDeque}; -use std::net::{IpAddr, SocketAddr}; +use std::net::{IpAddr, Ipv4Addr, SocketAddr, SocketAddrV4}; use std::ops::Deref; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicU64, AtomicUsize}; @@ -37,6 +37,7 @@ pub struct RpcContextConfig { pub bind_rpc: Option, pub bind_ws: Option, pub tor_control: Option, + pub tor_socks: Option, pub revision_cache_size: Option, pub zfs_pool_name: Option, pub datadir: Option, @@ -122,6 +123,7 @@ pub struct RpcContextSeed { pub websocket_count: AtomicUsize, pub logger: EmbassyLogger, pub log_epoch: Arc, + pub tor_socks: SocketAddr, } #[derive(Clone)] @@ -177,6 +179,10 @@ impl RpcContext { websocket_count: AtomicUsize::new(0), logger, log_epoch, + tor_socks: base.tor_socks.unwrap_or(SocketAddr::V4(SocketAddrV4::new( + Ipv4Addr::new(127, 0, 0, 1), + 9050, + ))), }); let res = Self(seed); res.managers