]> Cypherpunks.ru repositories - gocheese.git/blobdiff - upload.go
More errors logging
[gocheese.git] / upload.go
index 0e7db6148aa044f1d525f543c44e16fe1b2ef9cc..6a5e9bda003abb7ca15a842bbf39f17b697bad80 100644 (file)
--- a/upload.go
+++ b/upload.go
@@ -82,7 +82,7 @@ func serveUpload(w http.ResponseWriter, r *http.Request) {
                log.Println(r.RemoteAddr, "put", filename, "by", username)
                path := filepath.Join(dirPath, filename)
                if _, err = os.Stat(path); err == nil {
-                       log.Println(r.RemoteAddr, "already exists", filename)
+                       log.Println(r.RemoteAddr, filename, "already exists")
                        http.Error(w, "already exists", http.StatusBadRequest)
                        return
                }
@@ -92,11 +92,13 @@ func serveUpload(w http.ResponseWriter, r *http.Request) {
                src, err := file.Open()
                defer src.Close()
                if err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                dst, err := TempFile(dirPath)
                if err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
@@ -104,18 +106,21 @@ func serveUpload(w http.ResponseWriter, r *http.Request) {
                hasher := sha256.New()
                wr := io.MultiWriter(hasher, dst)
                if _, err = io.Copy(wr, src); err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        os.Remove(dst.Name())
                        dst.Close()
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                if err = dstBuf.Flush(); err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        os.Remove(dst.Name())
                        dst.Close()
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                if err = dst.Sync(); err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        os.Remove(dst.Name())
                        dst.Close()
                        http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -134,14 +139,17 @@ func serveUpload(w http.ResponseWriter, r *http.Request) {
                        }
                }
                if err = os.Rename(dst.Name(), path); err != nil {
+                       log.Println("error", r.RemoteAddr, path, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                if err = DirSync(dirPath); err != nil {
+                       log.Println("error", r.RemoteAddr, dirPath, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                if err = WriteFileSync(dirPath, path+"."+HashAlgoSHA256, digest); err != nil {
+                       log.Println("error", r.RemoteAddr, path+"."+HashAlgoSHA256, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
@@ -149,6 +157,7 @@ func serveUpload(w http.ResponseWriter, r *http.Request) {
        for _, file := range r.MultipartForm.File["gpg_signature"] {
                filename := file.Filename
                if _, exists := gpgSigsExpected[filename]; !exists {
+                       log.Println(r.RemoteAddr, filename, "unexpected GPG signature filename")
                        http.Error(w, "unexpected GPG signature filename", http.StatusBadRequest)
                        return
                }
@@ -156,22 +165,25 @@ func serveUpload(w http.ResponseWriter, r *http.Request) {
                log.Println(r.RemoteAddr, "put", filename, "by", username)
                path := filepath.Join(dirPath, filename)
                if _, err = os.Stat(path); err == nil {
-                       log.Println(r.RemoteAddr, "already exists", filename)
+                       log.Println(r.RemoteAddr, filename, "already exists")
                        http.Error(w, "already exists", http.StatusBadRequest)
                        return
                }
                src, err := file.Open()
                if err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                sig, err := ioutil.ReadAll(src)
                src.Close()
                if err != nil {
+                       log.Println("error", r.RemoteAddr, filename, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
                if err = WriteFileSync(dirPath, path, sig); err != nil {
+                       log.Println("error", r.RemoteAddr, path, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }