From 5d3cc44e423e40b0485167fc5d2e89a80d4d6e8f Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 4 Mar 2025 21:46:50 +0100 Subject: x-forwaded-... headers in proxy module --- src/main.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index c3e8cc7..fe7856e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -127,7 +127,7 @@ async fn serve_http(state: Arc) -> Result<()> { debug!("connection from {addr}"); let stream = TokioIo::new(stream); let state = state.clone(); - tokio::spawn(async move { serve_stream(state, stream, addr).await }); + tokio::spawn(async move { serve_stream(state, stream, addr, false).await }); } })) .await; @@ -163,7 +163,7 @@ async fn serve_https(state: Arc) -> Result<()> { tokio::task::spawn(async move { debug!("connection from {addr}"); match tls_acceptor.accept(stream).await { - Ok(stream) => serve_stream(state, TokioIo::new(stream), addr).await, + Ok(stream) => serve_stream(state, TokioIo::new(stream), addr, true).await, Err(e) => warn!("error accepting tls: {e}"), }; }); @@ -178,6 +178,7 @@ pub async fn serve_stream, stream: T, addr: SocketAddr, + secure: bool, ) { if let Ok(_semaphore) = state.l_incoming.try_acquire() { let builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new()); @@ -187,7 +188,7 @@ pub async fn serve_stream Ok(r), Err(ServiceError::Hyper(e)) => Err(e), Err(error) => Ok({ @@ -220,6 +221,7 @@ async fn service( config: Arc, mut request: Request, addr: SocketAddr, + secure: bool, ) -> Result>, ServiceError> { // move uri authority used in HTTP/2 to Host header field { @@ -241,7 +243,11 @@ async fn service( request.uri() ); - let mut context = NodeContext { addr, state }; + let mut context = NodeContext { + addr, + state, + secure, + }; let mut resp = config .handler .handle(&mut context, request.map(|body| body.boxed())) -- cgit v1.2.3-70-g09d2