diff --git a/lychee-lib/src/checker.rs b/lychee-lib/src/checker.rs index c920550..9a4d7b9 100644 --- a/lychee-lib/src/checker.rs +++ b/lychee-lib/src/checker.rs @@ -8,7 +8,7 @@ use http::StatusCode; use reqwest::Request; use std::{collections::HashSet, time::Duration}; -#[derive(Debug)] +#[derive(Debug, Clone)] pub(crate) struct Checker { retry_wait_time: Duration, max_retries: u64, diff --git a/lychee-lib/src/client.rs b/lychee-lib/src/client.rs index cadd7e3..62e32a7 100644 --- a/lychee-lib/src/client.rs +++ b/lychee-lib/src/client.rs @@ -36,7 +36,8 @@ use crate::{ quirks::Quirks, remap::Remaps, types::uri::github::GithubUri, - utils::fragment_checker::FragmentChecker, ErrorKind, Request, Response, Result, Status, Uri, + utils::fragment_checker::FragmentChecker, + ErrorKind, Request, Response, Result, Status, Uri, }; #[cfg(all(feature = "email-check", feature = "native-tls"))] @@ -465,7 +466,7 @@ impl Client { { let Request { ref mut uri, - ref credentials, + credentials, source, .. } = request.try_into()?; @@ -486,7 +487,9 @@ impl Client { } let request_chain: RequestChain = Chain::new(vec![ + // TODO: insert self.request_chain Box::::default(), + Box::new(credentials), Box::new(Checker::new( self.retry_wait_time, self.max_retries, diff --git a/lychee-lib/src/types/basic_auth/credentials.rs b/lychee-lib/src/types/basic_auth/credentials.rs index 2bdf19e..906357f 100644 --- a/lychee-lib/src/types/basic_auth/credentials.rs +++ b/lychee-lib/src/types/basic_auth/credentials.rs @@ -75,11 +75,14 @@ impl BasicAuthCredentials { } #[async_trait] -impl Chainable for BasicAuthCredentials { +impl Chainable for Option { async fn chain(&mut self, mut request: Request) -> ChainResult { - request - .headers_mut() - .append(AUTHORIZATION, self.to_authorization().0.encode()); + if let Some(credentials) = self { + request + .headers_mut() + .append(AUTHORIZATION, credentials.to_authorization().0.encode()); + } + ChainResult::Next(request) } }