]> Cypherpunks.ru repositories - gocheese.git/blobdiff - refresh.go
Fix mtimeless touch logic
[gocheese.git] / refresh.go
index 6fef8f600ea352d587d791607dc0ceaefe60fe65..59c8ceb9f5dd7c2b6288e27eb1d1cc0c9f6574e9 100644 (file)
@@ -338,12 +338,17 @@ func refreshDir(
                        hasherNew = blake2b256New
                        hashSize = blake2b.Size256
                default:
-                       log.Println("error", r.RemoteAddr, "pypi", filename, "unknown digest", hashAlgo)
+                       log.Println(
+                               "error", r.RemoteAddr, "pypi",
+                               filename, "unknown digest", hashAlgo,
+                       )
                        http.Error(w, "unknown digest algorithm", http.StatusBadGateway)
                        return false
                }
                if len(digest) != hashSize {
-                       log.Println("error", r.RemoteAddr, "pypi", filename, "invalid digest length")
+                       log.Println(
+                               "error", r.RemoteAddr, "pypi",
+                               filename, "invalid digest length")
                        http.Error(w, "invalid digest length", http.StatusBadGateway)
                        return false
                }
@@ -546,8 +551,8 @@ func refreshDir(
                }
                path = path + "." + hashAlgo
                stat, err := os.Stat(path)
-               if err == nil &&
-                       (mtimeExists && stat.ModTime().Truncate(time.Second).Equal(mtime)) {
+               if err == nil && (!mtimeExists ||
+                       (mtimeExists && stat.ModTime().Truncate(time.Second).Equal(mtime))) {
                        continue
                }
                if err != nil && !os.IsNotExist(err) {