X-Git-Url: https://git.r.bdr.sh/rbdr/olden-mail/blobdiff_plain/2fdda21d13ed742bdb52ec3ba74538af83de2bf4..b35c67a876ce49fb4f80864d7e4a09b434c4d274:/src/proxy.rs diff --git a/src/proxy.rs b/src/proxy.rs index a2f62e4..8348325 100644 --- a/src/proxy.rs +++ b/src/proxy.rs @@ -72,7 +72,7 @@ impl Server { let running_clone = Arc::clone(&running); let thread_handle = spawn(move || { - run_proxy(configuration, running_clone); + run_proxy(&configuration, &running_clone); }); Server { @@ -93,7 +93,7 @@ impl Server { /// The main loop that listens for incoming (plaintext) connections on /// `configuration.bind_address:configuration.local_port`. -fn run_proxy(configuration: Arc, running: Arc) { +fn run_proxy(configuration: &Arc, running: &Arc) { let listener = match TcpListener::bind(format!( "{}:{}", configuration.bind_address, configuration.local_port @@ -121,7 +121,7 @@ fn run_proxy(configuration: Arc, running: Arc) { let configuration_clone = Arc::clone(&configuration); let handle = spawn(move || { - handle_client(stream, configuration_clone); + handle_client(stream, &configuration_clone); }); active_threads.push(handle); } @@ -152,7 +152,7 @@ fn run_proxy(configuration: Arc, running: Arc) { } /// Handles a single client connection by bridging it (plaintext) to a TLS connection. -fn handle_client(client_stream: TcpStream, configuration: Arc) { +fn handle_client(client_stream: TcpStream, configuration: &Arc) { if let Err(e) = client_stream.set_nonblocking(true) { error!("Failed to set client stream to nonblocking: {}", e); return;