]> git.r.bdr.sh - rbdr/olden-mail/blobdiff - src/proxy.rs
Check if openssl exists as an arch package
[rbdr/olden-mail] / src / proxy.rs
index a2f62e4bac4a8697a17e26a4bd41c6b3b023f818..15a2e7d19736e52330e01661971fb2d907179cd7 100644 (file)
@@ -72,7 +72,7 @@ impl Server {
         let running_clone = Arc::clone(&running);
 
         let thread_handle = spawn(move || {
         let running_clone = Arc::clone(&running);
 
         let thread_handle = spawn(move || {
-            run_proxy(configuration, running_clone);
+            run_proxy(&configuration, &running_clone);
         });
 
         Server {
         });
 
         Server {
@@ -93,7 +93,7 @@ impl Server {
 
 /// The main loop that listens for incoming (plaintext) connections on
 /// `configuration.bind_address:configuration.local_port`.
 
 /// The main loop that listens for incoming (plaintext) connections on
 /// `configuration.bind_address:configuration.local_port`.
-fn run_proxy(configuration: Arc<Proxy>, running: Arc<AtomicBool>) {
+fn run_proxy(configuration: &Arc<Proxy>, running: &Arc<AtomicBool>) {
     let listener = match TcpListener::bind(format!(
         "{}:{}",
         configuration.bind_address, configuration.local_port
     let listener = match TcpListener::bind(format!(
         "{}:{}",
         configuration.bind_address, configuration.local_port
@@ -119,9 +119,9 @@ fn run_proxy(configuration: Arc<Proxy>, running: Arc<AtomicBool>) {
             Ok((stream, addr)) => {
                 info!("New {} connection from {}", configuration.protocol, addr);
 
             Ok((stream, addr)) => {
                 info!("New {} connection from {}", configuration.protocol, addr);
 
-                let configuration_clone = Arc::clone(&configuration);
+                let configuration_clone = Arc::clone(configuration);
                 let handle = spawn(move || {
                 let handle = spawn(move || {
-                    handle_client(stream, configuration_clone);
+                    handle_client(stream, &configuration_clone);
                 });
                 active_threads.push(handle);
             }
                 });
                 active_threads.push(handle);
             }
@@ -152,7 +152,7 @@ fn run_proxy(configuration: Arc<Proxy>, running: Arc<AtomicBool>) {
 }
 
 /// Handles a single client connection by bridging it (plaintext) to a TLS connection.
 }
 
 /// Handles a single client connection by bridging it (plaintext) to a TLS connection.
-fn handle_client(client_stream: TcpStream, configuration: Arc<Proxy>) {
+fn handle_client(client_stream: TcpStream, configuration: &Arc<Proxy>) {
     if let Err(e) = client_stream.set_nonblocking(true) {
         error!("Failed to set client stream to nonblocking: {}", e);
         return;
     if let Err(e) = client_stream.set_nonblocking(true) {
         error!("Failed to set client stream to nonblocking: {}", e);
         return;