From 244b6c9291cb635265c657303f28a17d30535b9c Mon Sep 17 00:00:00 2001 From: decentclock Date: Fri, 30 Sep 2022 21:32:29 +0000 Subject: [PATCH] broker: make Settings struct Copy, pass copies around --- broker/src/main.rs | 4 ++-- broker/src/mqtt.rs | 4 ++-- broker/src/run_test.rs | 2 +- broker/src/unix_fd.rs | 4 ++-- broker/src/util.rs | 1 + 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/broker/src/main.rs b/broker/src/main.rs index 333eab6..dc3c703 100644 --- a/broker/src/main.rs +++ b/broker/src/main.rs @@ -98,7 +98,7 @@ async fn run_main(parent_fd: i32) -> rocket::Rocket { let (status_tx, mut status_rx) = mpsc::channel(1000); let (error_tx, _) = broadcast::channel(1000); log::info!("=> start broker on network: {}", settings.network); - start_broker(rx, status_tx, error_tx.clone(),CLIENT_ID, &settings).await; + start_broker(rx, status_tx, error_tx.clone(),CLIENT_ID, settings).await; log::info!("=> wait for connected status"); // wait for connection = true let status = status_rx.recv().await.expect("couldnt receive"); @@ -124,7 +124,7 @@ async fn run_main(parent_fd: i32) -> rocket::Rocket { let mut signer_loop = SignerLoop::new(client, tx.clone()); // spawn CLN listener on a std thread std::thread::spawn(move || { - signer_loop.start(Some(&settings)); + signer_loop.start(Some(settings)); }); routes::launch_rocket(tx, error_tx) diff --git a/broker/src/mqtt.rs b/broker/src/mqtt.rs index 1a0c4c5..d6bc77c 100644 --- a/broker/src/mqtt.rs +++ b/broker/src/mqtt.rs @@ -29,7 +29,7 @@ pub async fn start_broker( status_sender: mpsc::Sender, error_sender: broadcast::Sender>, expected_client_id: &str, - settings: &Settings, + settings: Settings, ) { let config = config(settings); let client_id = expected_client_id.to_string(); @@ -144,7 +144,7 @@ fn metrics_to_status(metrics: ConnectionMetrics, client_connected: bool) -> Opti } } -fn config(settings: &Settings) -> Config { +fn config(settings: Settings) -> Config { use librumqttd::rumqttlog::Config as RouterConfig; use librumqttd::{ConnectionSettings, SphinxLoginCredentials, ConsoleSettings, ServerSettings}; use std::collections::HashMap; diff --git a/broker/src/run_test.rs b/broker/src/run_test.rs index 9f94a5a..e4b83ef 100644 --- a/broker/src/run_test.rs +++ b/broker/src/run_test.rs @@ -21,7 +21,7 @@ pub async fn run_test() -> rocket::Rocket { let (tx, rx) = mpsc::channel(1000); let (status_tx, mut status_rx) = mpsc::channel(1000); let (error_tx, _) = broadcast::channel(1000); - start_broker(rx, status_tx, error_tx.clone(), CLIENT_ID, &settings).await; + start_broker(rx, status_tx, error_tx.clone(), CLIENT_ID, settings).await; let mut connected = false; let tx_ = tx.clone(); tokio::spawn(async move { diff --git a/broker/src/unix_fd.rs b/broker/src/unix_fd.rs index d48a45e..3660eed 100644 --- a/broker/src/unix_fd.rs +++ b/broker/src/unix_fd.rs @@ -61,7 +61,7 @@ impl SignerLoop { } /// Start the read loop - pub fn start(&mut self, settings: Option<&Settings>) { + pub fn start(&mut self, settings: Option) { info!("loop {}: start", self.log_prefix); match self.do_loop(settings) { Ok(()) => info!("loop {}: done", self.log_prefix), @@ -70,7 +70,7 @@ impl SignerLoop { } } - fn do_loop(&mut self, settings: Option<&Settings>) -> Result<()> { + fn do_loop(&mut self, settings: Option) -> Result<()> { loop { let raw_msg = self.client.read_raw()?; debug!("loop {}: got raw", self.log_prefix); diff --git a/broker/src/util.rs b/broker/src/util.rs index 55b75cb..ac021f8 100644 --- a/broker/src/util.rs +++ b/broker/src/util.rs @@ -5,6 +5,7 @@ use std::fs; use std::str::FromStr; use toml::Value; +#[derive(Clone, Copy, Debug)] pub struct Settings { pub network: Network, pub port: u16,