Răsfoiți Sursa

Fix file extension detection; fix HTTPS port

Philipp Heckel 4 ani în urmă
părinte
comite
9171e94e5a
2 a modificat fișierele cu 8 adăugiri și 7 ștergeri
  1. 3 2
      server/server.go
  2. 5 5
      util/util.go

+ 3 - 2
server/server.go

@@ -293,7 +293,7 @@ func (s *Server) Run() error {
 		errChan <- s.httpServer.ListenAndServe()
 	}()
 	if s.config.ListenHTTPS != "" {
-		s.httpsServer = &http.Server{Addr: s.config.ListenHTTP, Handler: mux}
+		s.httpsServer = &http.Server{Addr: s.config.ListenHTTPS, Handler: mux}
 		go func() {
 			errChan <- s.httpsServer.ListenAndServeTLS(s.config.CertFile, s.config.KeyFile)
 		}()
@@ -479,7 +479,8 @@ func (s *Server) handlePublish(w http.ResponseWriter, r *http.Request, v *visito
 		return err
 	}
 	m := newDefaultMessage(t.ID, "")
-	if !body.LimitReached && utf8.Valid(body.PeakedBytes) {
+	filename := readParam(r, "x-filename", "filename", "file", "f")
+	if filename == "" && !body.LimitReached && utf8.Valid(body.PeakedBytes) {
 		m.Message = strings.TrimSpace(string(body.PeakedBytes))
 	} else if s.config.AttachmentCacheDir != "" {
 		if err := s.writeAttachment(r, v, m, body); err != nil {

+ 5 - 5
util/util.go

@@ -18,10 +18,10 @@ const (
 )
 
 var (
-	random       = rand.New(rand.NewSource(time.Now().UnixNano()))
-	randomMutex  = sync.Mutex{}
-	sizeStrRegex = regexp.MustCompile(`(?i)^(\d+)([gmkb])?$`)
-
+	random             = rand.New(rand.NewSource(time.Now().UnixNano()))
+	randomMutex        = sync.Mutex{}
+	sizeStrRegex       = regexp.MustCompile(`(?i)^(\d+)([gmkb])?$`)
+	extRegex           = regexp.MustCompile(`^\.[-_A-Za-z0-9]+$`)
 	errInvalidPriority = errors.New("invalid priority")
 )
 
@@ -175,7 +175,7 @@ func ExtensionByType(contentType string) string {
 		return ".jpg"
 	default:
 		exts, err := mime.ExtensionsByType(contentType)
-		if err == nil && len(exts) > 0 {
+		if err == nil && len(exts) > 0 && extRegex.MatchString(exts[0]) {
 			return exts[0]
 		}
 		return ".bin"