X-Git-Url: https://git.r.bdr.sh/rbdr/olden-mail/blobdiff_plain/69414c2920c8eb4b60d9aaeacb260c7da97c2285..408fda8d8b94fdfd9ad9b9b07faa9716df3d7346:/src/proxy.rs?ds=sidebyside diff --git a/src/proxy.rs b/src/proxy.rs index 15a2e7d..2798df3 100644 --- a/src/proxy.rs +++ b/src/proxy.rs @@ -42,6 +42,7 @@ use std::thread::{sleep, spawn, JoinHandle}; use std::time::Duration; use crate::configuration::Proxy; +use crate::middleware::MIDDLEWARE; /// A proxy server that listens for plaintext connections and forwards them /// via TLS. @@ -213,7 +214,6 @@ fn handle_client(client_stream: TcpStream, configuration: &Arc) { let mut buffer = [0u8; 8192]; let mut client_reader = client_stream; loop { - debug!(">"); let bytes_read = match client_reader.read(&mut buffer) { Ok(0) => break, Ok(n) => n, @@ -227,7 +227,13 @@ fn handle_client(client_stream: TcpStream, configuration: &Arc) { } }; - let debug_str = String::from_utf8_lossy(&buffer[..bytes_read]) + let mut command = buffer[..bytes_read].to_vec(); + + for middleware in MIDDLEWARE { + command = middleware(&command); + } + + let debug_str = String::from_utf8_lossy(&command) .replace('\n', "\\n") .replace('\r', "\\r") .replace('\t', "\\t"); @@ -260,7 +266,6 @@ fn handle_client(client_stream: TcpStream, configuration: &Arc) { let mut buffer = [0u8; 8192]; let mut client_writer = client_stream_clone; loop { - debug!("<"); // Lock the TLS stream and read from the server let bytes_read = match tls_stream_clone.lock() { Ok(mut tls_guard) => match tls_guard.read(&mut buffer) {