From 4fbdec2878343267f374cbe461302476ab82f8cd Mon Sep 17 00:00:00 2001 From: sigoden Date: Thu, 20 Mar 2025 08:46:26 +0800 Subject: [PATCH] feat: tolerate the absence of mtime (#559) --- src/server.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/server.rs b/src/server.rs index 3f75b16..8e50bc3 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1394,7 +1394,10 @@ impl Server { (true, false) => PathType::SymlinkFile, (false, false) => PathType::File, }; - let mtime = to_timestamp(&meta.modified()?); + let mtime = match meta.modified().ok().or_else(|| meta.created().ok()) { + Some(v) => to_timestamp(&v), + None => 0, + }; let size = match path_type { PathType::Dir | PathType::SymlinkDir => { let mut count = 0; @@ -1690,7 +1693,7 @@ async fn zip_dir( } fn extract_cache_headers(meta: &Metadata) -> Option<(ETag, LastModified)> { - let mtime = meta.modified().ok()?; + let mtime = meta.modified().ok().or_else(|| meta.created().ok())?; let timestamp = to_timestamp(&mtime); let size = meta.len(); let etag = format!(r#""{timestamp}-{size}""#).parse::().ok()?;