ignore eof error when content length is 0 or response body is read to end

This commit is contained in:
guochao 2025-01-09 21:33:43 +08:00
parent 89da9e0bcb
commit b4d5a8a4eb

View File

@ -398,6 +398,16 @@ func (server *Server) streamOnline(w http.ResponseWriter, r *http.Request, mtime
memoryObject.wg.Wait()
if response.ContentLength > 0 {
if memoryObject.Offset == int(response.ContentLength) && err != nil {
slog.With("length", memoryObject.Offset, "error", err, "upstreamIdx", selectedIdx).Debug("something happened during download. but response body is read as whole. so error is reset to nil")
err = nil
}
} else if err == io.EOF {
slog.With("length", memoryObject.Offset, "error", err, "upstreamIdx", selectedIdx).Debug("something happened during download. content length is not specified and error is a eof. so error is reset to nil")
err = nil
}
if err != nil {
slog.With("error", err, "upstreamIdx", selectedIdx).Error("something happened during download. will not cache this response")
}