From a7fd2aeffb0805c97bc33cbfd29f1fe3b5bcd8f1 Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Mon, 19 Apr 2021 18:21:57 +0000 Subject: [PATCH] Track download count only if there is a limit, and rewrite metadata file only when the counter should be increased --- server/handlers.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/handlers.go b/server/handlers.go index 22ec23e..dd10e73 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -663,13 +663,11 @@ func (s *Server) CheckMetadata(token, filename string, increaseDownload bool) (M return metadata, errors.New("MaxDownloads expired.") } else if !metadata.MaxDate.IsZero() && time.Now().After(metadata.MaxDate) { return metadata, errors.New("MaxDate expired.") - } else { + } else if metadata.MaxDownloads != -1 && increaseDownload { // todo(nl5887): mutex? // update number of downloads - if increaseDownload { - metadata.Downloads++ - } + metadata.Downloads++ buffer := &bytes.Buffer{} if err := json.NewEncoder(buffer).Encode(metadata); err != nil {