diff --git a/src/main.rs b/src/main.rs index c5e88f8..45efd45 100644 --- a/src/main.rs +++ b/src/main.rs @@ -68,7 +68,14 @@ async fn main() -> Result<()> { loop { let (stream, _) = listener.accept().await?; tokio::task::spawn(async move { - if let Err(e) = proxy_request(stream, socks_addr, auth_details, allowed_domains).await { + if let Err(e) = proxy_request( + stream, + socks_addr, + auth_details.as_ref(), + allowed_domains.as_ref(), + ) + .await + { error!("Error proxying request: {}", e); } }); diff --git a/src/proxy/mod.rs b/src/proxy/mod.rs index 7891e52..b687a09 100644 --- a/src/proxy/mod.rs +++ b/src/proxy/mod.rs @@ -24,8 +24,8 @@ use hyper::server::conn::http1; async fn proxy( req: Request, socks_addr: SocketAddr, - auth: &'static Option, - allowed_domains: &Option>, + auth: Option<&'static Auth>, + allowed_domains: Option<&'static Vec>, ) -> Result>> { let uri = req.uri(); let method = req.method(); @@ -120,7 +120,7 @@ async fn tunnel( upgraded: Upgraded, addr: String, socks_addr: SocketAddr, - auth: &Option, + auth: Option<&Auth>, ) -> Result<()> { let mut stream = match auth { Some(auth) => { @@ -147,8 +147,8 @@ async fn tunnel( pub async fn proxy_request( stream: TcpStream, socks_addr: SocketAddr, - auth_details: &'static Option, - allowed_domains: &'static Option>, + auth_details: Option<&'static Auth>, + allowed_domains: Option<&'static Vec>, ) -> color_eyre::Result<()> { let io = TokioIo::new(stream); diff --git a/tests/proxy.rs b/tests/proxy.rs index 3b9f7e7..61dcb31 100644 --- a/tests/proxy.rs +++ b/tests/proxy.rs @@ -35,7 +35,7 @@ async fn simple_test() -> Result<()> { let addr = listener.local_addr()?; let _ = tokio::task::spawn(async move { let (stream, proxy_addr) = listener.accept().await?; - proxy_request(stream, socks_proxy_addr, &None, &None).await?; + proxy_request(stream, socks_proxy_addr, None, None).await?; eprintln!("new connection from: {:?}", proxy_addr); Ok::<_, color_eyre::eyre::Error>(()) });