fix refresh policy

This commit is contained in:
guochao 2025-01-09 23:14:49 +08:00
parent b4d5a8a4eb
commit dbff5b7c44

View File

@ -222,6 +222,7 @@ func (server *Server) handleRequest(w http.ResponseWriter, r *http.Request) {
ranged := r.Header.Get("Range") != ""
localStatus, mtime, err := server.checkLocal(w, r, fullpath)
slog.With("status", localStatus, "mtime", mtime, "error", err).Debug("local status checked")
if os.IsPermission(err) {
http.Error(w, err.Error(), http.StatusForbidden)
} else if err != nil {
@ -276,7 +277,9 @@ func (server *Server) checkLocal(w http.ResponseWriter, _ *http.Request, key str
break
}
}
if mtime := stat.ModTime(); mtime.Add(refreshAfter).Before(time.Now()) || refresh == "always" && refresh != "never" {
mtime := stat.ModTime()
slog.With("policy", refresh, "after", refreshAfter, "mtime", mtime, "key", key).Debug("refresh policy checked")
if (mtime.Add(refreshAfter).Before(time.Now()) || refresh == "always") && refresh != "never" {
return localExistsButNeedHead, mtime.In(time.UTC), nil
}
return localExists, mtime.In(time.UTC), nil