diff --git a/handler_api.go b/handler_api.go index ae77ffd..b22db5b 100644 --- a/handler_api.go +++ b/handler_api.go @@ -17,7 +17,6 @@ func (s *Server) handlerRefresh(w http.ResponseWriter, req *http.Request) { respondWithError(w, http.StatusUnauthorized, "unauthorized") return } - defer req.Body.Close() if err := s.c.Refresh(); err != nil { slog.Error("refresh failed", "err", err) @@ -37,7 +36,6 @@ func (s *Server) handlerLogLevel(w http.ResponseWriter, req *http.Request) { respondWithError(w, http.StatusUnauthorized, "unauthorized") return } - defer req.Body.Close() type reqParameters struct { NewLevel string `json:"loglevel"` diff --git a/handler_pkgs.go b/handler_pkgs.go index cb181ec..8ac8f72 100644 --- a/handler_pkgs.go +++ b/handler_pkgs.go @@ -41,7 +41,11 @@ func (s *Server) handlerPackage(w http.ResponseWriter, req *http.Request) { http.Error(w, "Failed to fetch from upstream", http.StatusBadGateway) return } - defer cachedFile.Reader.Close() + defer func() { + if closeErr := cachedFile.Reader.Close(); closeErr != nil { + err = closeErr + } + }() w.Header().Set("Content-Type", "application/octet-stream") w.Header().Set("Content-Disposition", "attachment; filename="+cachedFile.Filename) diff --git a/internal/cache/helpers.go b/internal/cache/helpers.go index 5d9c2ca..2eca98c 100644 --- a/internal/cache/helpers.go +++ b/internal/cache/helpers.go @@ -32,7 +32,11 @@ func (c *Cache) downloadToDisk(url, relPath string) error { slog.Info("fetch returned", "url", url, "status", resp.StatusCode) return &UpstreamError{StatusCode: resp.StatusCode} } - defer resp.Body.Close() + defer func() { + if closeErr := resp.Body.Close(); closeErr != nil { + err = closeErr + } + }() // make sure the dir structure exists err = c.cr.MkdirAll(filepath.Dir(relPath), 0750) @@ -46,7 +50,11 @@ func (c *Cache) downloadToDisk(url, relPath string) error { if err != nil { return err } - defer tmpFile.Close() + defer func() { + if closeErr := tmpFile.Close(); closeErr != nil { + err = closeErr + } + }() _, err = io.Copy(tmpFile, resp.Body) if err != nil {