From a2d31d90a16aa8d1ab3544a94dae6eb95c38cc3e Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 21 Mar 2026 22:29:45 +0000 Subject: [PATCH] more debug info --- src/util/requester.rs | 73 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 6 deletions(-) diff --git a/src/util/requester.rs b/src/util/requester.rs index 3e5f5e8..d986b56 100644 --- a/src/util/requester.rs +++ b/src/util/requester.rs @@ -45,6 +45,40 @@ impl fmt::Debug for Requester { } impl Requester { + fn debug_cookie_preview_from_owned_headers( + &self, + url: &str, + headers: &[(String, String)], + ) -> String { + if let Some((_, value)) = headers + .iter() + .find(|(key, _)| key.eq_ignore_ascii_case("cookie")) + { + return crate::util::flow_debug::preview(value, 160); + } + + self.cookie_header_for_url(url) + .map(|cookie| crate::util::flow_debug::preview(&cookie, 160)) + .unwrap_or_else(|| "none".to_string()) + } + + fn debug_cookie_preview_from_borrowed_headers( + &self, + url: &str, + headers: &[(&str, &str)], + ) -> String { + if let Some((_, value)) = headers + .iter() + .find(|(key, _)| key.eq_ignore_ascii_case("cookie")) + { + return crate::util::flow_debug::preview(value, 160); + } + + self.cookie_header_for_url(url) + .map(|cookie| crate::util::flow_debug::preview(&cookie, 160)) + .unwrap_or_else(|| "none".to_string()) + } + fn build_client(cookie_jar: Arc, user_agent: Option<&str>) -> Client { let mut builder = Client::builder() .cert_verification(false) @@ -118,10 +152,17 @@ impl Requester { } pub async fn get_raw(&mut self, url: &str) -> Result { + let cookie_preview = self + .cookie_header_for_url(url) + .map(|cookie| crate::util::flow_debug::preview(&cookie, 160)) + .unwrap_or_else(|| "none".to_string()); + #[cfg(not(feature = "debug"))] + let _ = &cookie_preview; crate::flow_debug!( - "trace={} requester get_raw url={} proxy={}", + "trace={} requester get_raw url={} cookies={} proxy={}", self.debug_trace_id().unwrap_or("none"), crate::util::flow_debug::preview(url, 120), + cookie_preview, self.proxy ); let client = Self::build_client(self.cookie_jar.clone(), self.user_agent.as_deref()); @@ -143,11 +184,15 @@ impl Requester { url: &str, headers: Vec<(String, String)>, ) -> Result { + let cookie_preview = self.debug_cookie_preview_from_owned_headers(url, &headers); + #[cfg(not(feature = "debug"))] + let _ = &cookie_preview; crate::flow_debug!( - "trace={} requester get_raw_with_headers url={} headers={} proxy={}", + "trace={} requester get_raw_with_headers url={} headers={} cookies={} proxy={}", self.debug_trace_id().unwrap_or("none"), crate::util::flow_debug::preview(url, 120), headers.len(), + cookie_preview, self.proxy ); let client = Self::build_client(self.cookie_jar.clone(), self.user_agent.as_deref()); @@ -176,11 +221,15 @@ impl Requester { where S: Serialize + ?Sized, { + let cookie_preview = self.debug_cookie_preview_from_owned_headers(url, &headers); + #[cfg(not(feature = "debug"))] + let _ = &cookie_preview; crate::flow_debug!( - "trace={} requester post_json url={} headers={} proxy={}", + "trace={} requester post_json url={} headers={} cookies={} proxy={}", self.debug_trace_id().unwrap_or("none"), crate::util::flow_debug::preview(url, 120), headers.len(), + cookie_preview, self.proxy ); let mut request = self.client.post(url).version(Version::HTTP_11).json(data); @@ -206,11 +255,15 @@ impl Requester { data: &str, headers: Vec<(&str, &str)>, ) -> Result { + let cookie_preview = self.debug_cookie_preview_from_borrowed_headers(url, &headers); + #[cfg(not(feature = "debug"))] + let _ = &cookie_preview; crate::flow_debug!( - "trace={} requester post url={} headers={} body_len={} proxy={}", + "trace={} requester post url={} headers={} cookies={} body_len={} proxy={}", self.debug_trace_id().unwrap_or("none"), crate::util::flow_debug::preview(url, 120), headers.len(), + cookie_preview, data.len(), self.proxy ); @@ -242,11 +295,15 @@ impl Requester { headers: Vec<(String, String)>, _http_version: Option, ) -> Result { + let cookie_preview = self.debug_cookie_preview_from_owned_headers(url, &headers); + #[cfg(not(feature = "debug"))] + let _ = &cookie_preview; crate::flow_debug!( - "trace={} requester post_multipart url={} headers={} proxy={}", + "trace={} requester post_multipart url={} headers={} cookies={} proxy={}", self.debug_trace_id().unwrap_or("none"), crate::util::flow_debug::preview(url, 120), headers.len(), + cookie_preview, self.proxy ); let http_version = match _http_version { @@ -285,11 +342,15 @@ impl Requester { headers: Vec<(String, String)>, _http_version: Option, ) -> Result { + let cookie_preview = self.debug_cookie_preview_from_owned_headers(url, &headers); + #[cfg(not(feature = "debug"))] + let _ = &cookie_preview; crate::flow_debug!( - "trace={} requester get_with_headers start url={} headers={} http_version={:?} proxy={}", + "trace={} requester get_with_headers start url={} headers={} cookies={} http_version={:?} proxy={}", self.debug_trace_id().unwrap_or("none"), crate::util::flow_debug::preview(url, 120), headers.len(), + cookie_preview, _http_version, self.proxy );