From 0d69e36ef780af15aa33aa021c5711496b0ea01e Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 13 Sep 2025 23:52:49 +0200 Subject: add vary header on localized files; fix #20 --- src/modules/files.rs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/modules/files.rs b/src/modules/files.rs index 7d6665a..94dab8c 100644 --- a/src/modules/files.rs +++ b/src/modules/files.rs @@ -12,7 +12,7 @@ use headers::{ AcceptRanges, CacheControl, ContentLength, ContentRange, ContentType, HeaderMapExt, LastModified, }; -use http::header::ACCEPT_LANGUAGE; +use http::header::{ACCEPT_LANGUAGE, VARY}; use http_body_util::{combinators::BoxBody, BodyExt, StreamBody}; use humansize::FormatSizeOptions; use hyper::{ @@ -163,16 +163,6 @@ impl Node for Files { false }; - // let etag = ETag::from_str(&calc_etag(modified)).map_err(|_| ServiceError::Other)?; - // let etag_matches = if self.etag { - // request.headers() - // .typed_get::() - // .map(|if_none_match| if_none_match.precondition_passes(&etag)) - // .unwrap_or_default() - // } else { - // false - // }; - let range = request.headers().typed_get::(); let (range_satisfied, range) = bytes_range(range, metadata.len()); @@ -221,12 +211,13 @@ impl Node for Files { CacheMode::NoStore => CacheControl::new().with_no_store(), }); - // if self.etag { - // r.headers_mut().typed_insert(etag); - // } if self.last_modified { r.headers_mut().typed_insert(LastModified::from(modified)); } + if self.localize { + r.headers_mut() + .insert(VARY, HeaderValue::from_static("accept-language")); + } Ok(r) }) -- cgit v1.2.3-70-g09d2