diff --git a/server/clamav.go b/server/clamav.go index 9a20fa8..9b86589 100644 --- a/server/clamav.go +++ b/server/clamav.go @@ -34,8 +34,8 @@ import ( "net/http" "time" - "github.com/gorilla/mux" clamd "github.com/dutchcoders/go-clamd" + "github.com/gorilla/mux" ) const clamavScanStatusOK = "OK" diff --git a/server/handlers.go b/server/handlers.go index 52c7f65..eafc522 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -291,7 +291,7 @@ func sanitize(fileName string) string { func (s *Server) postHandler(w http.ResponseWriter, r *http.Request) { if err := r.ParseMultipartForm(_24K); nil != err { s.logger.Printf("%s", err.Error()) - http.Error(w, "Error occurred copying to output stream", 500) + http.Error(w, "Error occurred copying to output stream", http.StatusInternalServerError) return } @@ -309,7 +309,7 @@ func (s *Server) postHandler(w http.ResponseWriter, r *http.Request) { if f, err = fheader.Open(); err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) return } @@ -325,7 +325,7 @@ func (s *Server) postHandler(w http.ResponseWriter, r *http.Request) { n, err := io.Copy(file, f) if err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) return } @@ -363,21 +363,21 @@ func (s *Server) postHandler(w http.ResponseWriter, r *http.Request) { buffer := &bytes.Buffer{} if err := json.NewEncoder(buffer).Encode(metadata); err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, "Could not encode metadata", 500) + http.Error(w, "Could not encode metadata", http.StatusInternalServerError) return } else if err := s.storage.Put(r.Context(), token, fmt.Sprintf("%s.metadata", filename), buffer, "text/json", uint64(buffer.Len())); err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, "Could not save metadata", 500) + http.Error(w, "Could not save metadata", http.StatusInternalServerError) return } s.logger.Printf("Uploading %s %s %d %s", token, filename, contentLength, contentType) - if err = s.storage.Put(r.Context(), token, filename, reader, contentType, uint64(contentLength)); err != nil { + if err = s.storage.Put(r.Context(), token, filename, file, contentType, uint64(contentLength)); err != nil { s.logger.Printf("Backend storage error: %s", err.Error()) - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) return } @@ -455,7 +455,7 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) { defer s.cleanTmpFile(file) if err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) return } @@ -464,7 +464,7 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) { n, err := io.Copy(file, r.Body) if err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) return } @@ -517,7 +517,7 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) { buffer := &bytes.Buffer{} if err := json.NewEncoder(buffer).Encode(metadata); err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, "Could not encode metadata", 500) + http.Error(w, "Could not encode metadata", http.StatusInternalServerError) return } else if !metadata.MaxDate.IsZero() && time.Now().After(metadata.MaxDate) { s.logger.Print("Invalid MaxDate") @@ -525,15 +525,13 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) { return } else if err := s.storage.Put(r.Context(), token, fmt.Sprintf("%s.metadata", filename), buffer, "text/json", uint64(buffer.Len())); err != nil { s.logger.Printf("%s", err.Error()) - http.Error(w, "Could not save metadata", 500) + http.Error(w, "Could not save metadata", http.StatusInternalServerError) return } s.logger.Printf("Uploading %s %s %d %s", token, filename, contentLength, contentType) - var err error - - if err = s.storage.Put(r.Context(), token, filename, reader, contentType, uint64(contentLength)); err != nil { + if err = s.storage.Put(r.Context(), token, filename, file, contentType, uint64(contentLength)); err != nil { s.logger.Printf("Error putting new file: %s", err.Error()) http.Error(w, "Could not save file", http.StatusInternalServerError) return diff --git a/server/server.go b/server/server.go index f25ec5b..c2b1e38 100644 --- a/server/server.go +++ b/server/server.go @@ -432,13 +432,17 @@ func (s *Server) Run() { s.logger.Panicf("Unable to parse: path=%s, err=%s", path, err) } - _, err = htmlTemplates.New(stripPrefix(path)).Parse(string(bytes)) - if err != nil { - s.logger.Println("Unable to parse html template", err) + if strings.HasSuffix(path, ".html") { + _, err = htmlTemplates.New(stripPrefix(path)).Parse(string(bytes)) + if err != nil { + s.logger.Println("Unable to parse html template", err) + } } - _, err = textTemplates.New(stripPrefix(path)).Parse(string(bytes)) - if err != nil { - s.logger.Println("Unable to parse text template", err) + if strings.HasSuffix(path, ".txt") { + _, err = textTemplates.New(stripPrefix(path)).Parse(string(bytes)) + if err != nil { + s.logger.Println("Unable to parse text template", err) + } } } } diff --git a/server/virustotal.go b/server/virustotal.go index 24fa8e7..7e4be0c 100644 --- a/server/virustotal.go +++ b/server/virustotal.go @@ -45,14 +45,14 @@ func (s *Server) virusTotalHandler(w http.ResponseWriter, r *http.Request) { vt, err := virustotal.NewVirusTotal(s.VirusTotalKey) if err != nil { - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) } reader := r.Body result, err := vt.Scan(filename, reader) if err != nil { - http.Error(w, err.Error(), 500) + http.Error(w, err.Error(), http.StatusInternalServerError) } s.logger.Println(result)