From 5913136c807f1a2396c45772db02cee2ad8aaec6 Mon Sep 17 00:00:00 2001 From: Guillermo Sanchez Gavier Date: Mon, 10 Mar 2025 14:26:38 +0100 Subject: [PATCH] feat: add tls_info flag to connections using proxy --- src/connect.rs | 8 ++++---- tests/proxy.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/connect.rs b/src/connect.rs index 609982b50..9809c3b68 100644 --- a/src/connect.rs +++ b/src/connect.rs @@ -393,7 +393,7 @@ impl ConnectorService { return Ok(Conn { inner: self.verbose.wrap(RustlsTlsConn { inner: io }), is_proxy: false, - tls_info: false, + tls_info: self.tls_info, }); } } @@ -404,7 +404,7 @@ impl ConnectorService { socks::connect(proxy, dst, dns).await.map(|tcp| Conn { inner: self.verbose.wrap(TokioIo::new(tcp)), is_proxy: false, - tls_info: false, + tls_info: self.tls_info, }) } @@ -540,7 +540,7 @@ impl ConnectorService { inner: TokioIo::new(io), }), is_proxy: false, - tls_info: false, + tls_info: self.tls_info, }); } } @@ -575,7 +575,7 @@ impl ConnectorService { inner: TokioIo::new(io), }), is_proxy: false, - tls_info: false, + tls_info: self.tls_info, }); } } diff --git a/tests/proxy.rs b/tests/proxy.rs index cc32f04dd..8bd53e3e6 100644 --- a/tests/proxy.rs +++ b/tests/proxy.rs @@ -230,3 +230,31 @@ async fn http_over_http() { assert_eq!(res.url().as_str(), url); assert_eq!(res.status(), reqwest::StatusCode::OK); } + +#[tokio::test] +async fn test_tls_info_not_present_to_http_proxy() { + let url = "http://hyper.rs/prox"; + + let server = server::http(move |req| { + assert_eq!(req.method(), "GET"); + assert_eq!(req.uri(), url); + assert_eq!(req.headers()["host"], "hyper.rs"); + + async { http::Response::default() } + }); + + let proxy = format!("http://{}", server.addr()); + + let res = reqwest::Client::builder() + .proxy(reqwest::Proxy::http(&proxy).unwrap()) + .tls_info(true) + .build() + .unwrap() + .get(url) + .send() + .await + .unwrap(); + + let tls_info = res.extensions().get::(); + assert!(tls_info.is_none()); +}