From: Sergey Matveev Date: Wed, 4 Dec 2019 21:05:49 +0000 (+0300) Subject: Send whole buffered response, preventing chunked encoding X-Git-Tag: v2.0.0~6 X-Git-Url: http://www.git.cypherpunks.ru/?p=gocheese.git;a=commitdiff_plain;h=f0a93d1e3b9b088b0598921ff7f8306f9567b641 Send whole buffered response, preventing chunked encoding --- diff --git a/gocheese.go b/gocheese.go index 5c6e80a..712783a 100644 --- a/gocheese.go +++ b/gocheese.go @@ -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) {