From 8f87f66ea69e0d2ebdb9c3dbca6a89de291f82e8 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Mon, 15 Jul 2024 16:04:59 -0700 Subject: [PATCH] proxy: refine error reporting a little bit more --- crates/proxy-server/src/main.rs | 12 ++++++++---- crates/proxy-server/src/proxy_handler.rs | 5 ++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/crates/proxy-server/src/main.rs b/crates/proxy-server/src/main.rs index b1817c17..6b705161 100644 --- a/crates/proxy-server/src/main.rs +++ b/crates/proxy-server/src/main.rs @@ -49,7 +49,14 @@ async fn start_listener(endpoint: &str, timeout: std::time::Duration) -> anyhow: tokio::spawn(async move { loop { - let (socket, peer_address) = listener.accept().await.context("accepting connection")?; + let (socket, peer_address) = match listener.accept().await { + Ok(tuple) => tuple, + Err(err) => { + log::error!("accept failed: {err:#}"); + return; + } + }; + tokio::spawn(async move { if let Err(err) = proxy_handler::handle_proxy_client(socket, peer_address, timeout).await @@ -58,9 +65,6 @@ async fn start_listener(endpoint: &str, timeout: std::time::Duration) -> anyhow: } }); } - - #[allow(unreachable_code)] - anyhow::Result::<()>::Ok(()) }); Ok(()) } diff --git a/crates/proxy-server/src/proxy_handler.rs b/crates/proxy-server/src/proxy_handler.rs index da7265ed..1095980d 100644 --- a/crates/proxy-server/src/proxy_handler.rs +++ b/crates/proxy-server/src/proxy_handler.rs @@ -64,7 +64,10 @@ pub async fn handle_proxy_client( { Err(_) => RequestStatus::timeout(), Ok(Ok(s)) => s, - Ok(Err(err)) => RequestStatus::error(err), + Ok(Err(err)) => { + log::error!("peer={peer_address:?}: {state:?} {request:?} -> {err:#}"); + RequestStatus::error(err) + } }; // socks5 crate doesn't believe in allowing cloning, so we premptively debug