]> Cypherpunks.ru repositories - gocheese.git/commitdiff
Send whole buffered response, preventing chunked encoding
authorSergey Matveev <stargrave@stargrave.org>
Wed, 4 Dec 2019 21:05:49 +0000 (00:05 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 4 Dec 2019 21:05:49 +0000 (00:05 +0300)
gocheese.go

index 5c6e80a2fc172d81d676e77f1199c3d3cb90dcc0..712783a854ca7983503ba0e4904edcea90206d1f 100644 (file)
@@ -204,17 +204,19 @@ func listRoot(w http.ResponseWriter, r *http.Request) {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
-       w.Write([]byte(fmt.Sprintf(HTMLBegin, "root", "root")))
+       var result bytes.Buffer
+       result.WriteString(fmt.Sprintf(HTMLBegin, "root", "root"))
        for _, file := range files {
                if file.Mode().IsDir() {
-                       w.Write([]byte(fmt.Sprintf(
+                       result.WriteString(fmt.Sprintf(
                                HTMLElement,
                                *refreshURLPath+file.Name()+"/",
                                file.Name(),
-                       )))
+                       ))
                }
        }
-       w.Write([]byte(HTMLEnd))
+       result.WriteString(HTMLEnd)
+       w.Write(result.Bytes())
 }
 
 func listDir(w http.ResponseWriter, r *http.Request, dir string, autorefresh bool) {
@@ -232,7 +234,8 @@ func listDir(w http.ResponseWriter, r *http.Request, dir string, autorefresh boo
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
-       w.Write([]byte(fmt.Sprintf(HTMLBegin, dir, dir)))
+       var result bytes.Buffer
+       result.WriteString(fmt.Sprintf(HTMLBegin, dir, dir))
        var data []byte
        var filenameClean string
        for _, file := range files {
@@ -245,16 +248,17 @@ func listDir(w http.ResponseWriter, r *http.Request, dir string, autorefresh boo
                        return
                }
                filenameClean = strings.TrimSuffix(file.Name(), SHA256Ext)
-               w.Write([]byte(fmt.Sprintf(
+               result.WriteString(fmt.Sprintf(
                        HTMLElement,
                        strings.Join([]string{
                                *refreshURLPath, dir, "/",
                                filenameClean, "#", SHA256Prefix, hex.EncodeToString(data),
                        }, ""),
                        filenameClean,
-               )))
+               ))
        }
-       w.Write([]byte(HTMLEnd))
+       result.WriteString(HTMLEnd)
+       w.Write(result.Bytes())
 }
 
 func servePkg(w http.ResponseWriter, r *http.Request, dir, filename string) {