v0.34.7
This commit is contained in:
1 parent
1cd6b7ac99
commit
58c7d63194
5 files changed
+281
-71
No files matched your search
@@ -14,7 +14,9 @@ pub(super) fn web_origin_request_headers(
|
||||
cached: Option<&Revalidation>,
|
||||
) -> (HeaderMap, bool) {
|
||||
let mut headers = client.clone();
|
||||
let Some(cached) = cached else { return (headers, false) };
|
||||
let Some(cached) = cached else {
|
||||
return (headers, false);
|
||||
};
|
||||
headers.remove("if-none-match");
|
||||
headers.remove("if-modified-since");
|
||||
let sent = cached.apply_validators(&mut headers);
|
||||
@@ -25,7 +27,12 @@ fn web_merged_validation_headers(cached: &Revalidation, validation: &HeaderMap)
|
||||
let mut merged = cached.merge_validation_headers(validation);
|
||||
if cached.transformed() {
|
||||
for name in [
|
||||
"content-encoding", "vary", "accept-ranges", "content-md5", "digest", "content-digest",
|
||||
"content-encoding",
|
||||
"vary",
|
||||
"accept-ranges",
|
||||
"content-md5",
|
||||
"digest",
|
||||
"content-digest",
|
||||
] {
|
||||
merged.remove(name);
|
||||
for value in cached.headers().get_all(name) {
|
||||
@@ -50,7 +57,8 @@ pub(super) fn finish_web_revalidation(
|
||||
apply_rules: impl FnOnce(&mut HeaderMap),
|
||||
) -> Option<WebRevalidated> {
|
||||
let origin_merged = web_merged_validation_headers(cached, validation);
|
||||
let origin_safe = crate::cache::plan(StatusCode::OK, &origin_merged, settings, elapsed).is_some();
|
||||
let origin_safe =
|
||||
crate::cache::plan(StatusCode::OK, &origin_merged, settings, elapsed).is_some();
|
||||
let mut merged = origin_merged;
|
||||
apply_rules(&mut merged);
|
||||
if force_cache {
|
||||
@@ -66,8 +74,17 @@ pub(super) fn finish_web_revalidation(
|
||||
let range = crate::cache::request_range(method, client);
|
||||
let if_range = client.get("if-range");
|
||||
let published = if can_store {
|
||||
cache.publish_revalidated(ticket.clone(), cached, merged.clone(), validation, settings, elapsed)
|
||||
} else { None };
|
||||
cache.publish_revalidated(
|
||||
ticket.clone(),
|
||||
cached,
|
||||
merged.clone(),
|
||||
validation,
|
||||
settings,
|
||||
elapsed,
|
||||
)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let (mut response, hits, ttl, resident_age, transformed, reason) =
|
||||
if let Some(mut hit) = published {
|
||||
if !client_not_modified {
|
||||
@@ -76,8 +93,12 @@ pub(super) fn finish_web_revalidation(
|
||||
}
|
||||
}
|
||||
(
|
||||
hit.response, hit.hits, hit.remaining_ttl, hit.resident_age_seconds,
|
||||
hit.transformed, "cache_revalidated",
|
||||
hit.response,
|
||||
hit.hits,
|
||||
hit.remaining_ttl,
|
||||
hit.resident_age_seconds,
|
||||
hit.transformed,
|
||||
"cache_revalidated",
|
||||
)
|
||||
} else {
|
||||
if !cache.ticket_current(ticket) {
|
||||
@@ -93,7 +114,14 @@ pub(super) fn finish_web_revalidation(
|
||||
} else {
|
||||
cached.response(merged)
|
||||
};
|
||||
(response, 0, 0, 0, cached.transformed(), "cache_revalidated_uncached")
|
||||
(
|
||||
response,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
cached.transformed(),
|
||||
"cache_revalidated_uncached",
|
||||
)
|
||||
};
|
||||
if client_not_modified {
|
||||
response = crate::cache::make_not_modified(response);
|
||||
@@ -104,7 +132,11 @@ pub(super) fn finish_web_revalidation(
|
||||
settings.annotate_reason(response.headers_mut(), "HIT", hits, ttl, reason);
|
||||
settings.annotate_transformed(response.headers_mut(), transformed);
|
||||
settings.annotate_resident_age(response.headers_mut(), resident_age);
|
||||
Some(WebRevalidated { response, transformed, reason })
|
||||
Some(WebRevalidated {
|
||||
response,
|
||||
transformed,
|
||||
reason,
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
Reference in new issue
Block a user