Skip to content

Commit

Permalink
Update with PR changes
Browse files Browse the repository at this point in the history
  • Loading branch information
konstin committed Nov 3, 2023
1 parent e79977b commit 40d2e4f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 15 additions & 8 deletions crates/puffin-client/src/client.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
use std::fmt::Debug;
use std::path::PathBuf;

use async_http_range_reader::{AsyncHttpRangeReader, AsyncHttpRangeReaderError};
use async_http_range_reader::{
AsyncHttpRangeReader, AsyncHttpRangeReaderError, CheckSupportMethod,
};
use futures::{AsyncRead, StreamExt, TryStreamExt};
use http_cache_reqwest::{CACacheManager, Cache, CacheMode, HttpCache, HttpCacheOptions};
use reqwest::{header, Client, ClientBuilder, Response, StatusCode};
use reqwest::header::HeaderMap;
use reqwest::{header, Client, ClientBuilder, StatusCode};
use reqwest_middleware::ClientWithMiddleware;
use reqwest_retry::policies::ExponentialBackoff;
use reqwest_retry::RetryTransientMiddleware;
Expand Down Expand Up @@ -234,7 +237,7 @@ impl RegistryClient {
{
debug!("Cache hit for wheel metadata for {url}");
cached_metadata
} else if let Some((mut reader, response)) = self.range_reader(url.clone()).await? {
} else if let Some((mut reader, headers)) = self.range_reader(url.clone()).await? {
debug!("Using remote zip reader for wheel metadata for {url}");
let text = wheel_metadata_from_remote_zip(filename, &mut reader)
.await
Expand All @@ -244,8 +247,7 @@ impl RegistryClient {
// Perf (and cache size) improvement
metadata.description = Some("[omitted]".to_string());
}
let is_immutable = response
.headers()
let is_immutable = headers
.get(header::CACHE_CONTROL)
.and_then(|header| header.to_str().ok())
.unwrap_or_default()
Expand Down Expand Up @@ -306,10 +308,15 @@ impl RegistryClient {
async fn range_reader(
&self,
url: Url,
) -> Result<Option<(AsyncHttpRangeReader, Response)>, Error> {
let response = AsyncHttpRangeReader::new_head(self.client_raw.clone(), url.clone()).await;
) -> Result<Option<(AsyncHttpRangeReader, HeaderMap)>, Error> {
let response = AsyncHttpRangeReader::new(
self.client_raw.clone(),
url.clone(),
CheckSupportMethod::Head,
)
.await;
match response {
Ok((reader, response)) => Ok(Some((reader, response))),
Ok((reader, headers)) => Ok(Some((reader, headers))),
Err(AsyncHttpRangeReaderError::HttpRangeRequestUnsupported) => Ok(None),
Err(err) => Err(err.into()),
}
Expand Down

0 comments on commit 40d2e4f

Please sign in to comment.