From 930cb6d4e947d38ec5fcde1cfefeeb3f34878c1a Mon Sep 17 00:00:00 2001 From: bnkamalesh Date: Fri, 6 Aug 2021 19:22:14 +0530 Subject: [PATCH] [patch] remove check when response is already written, prevent writing any further. [-] the blocking behaviour was breaking large responses like files and such --- cmd/main.go | 30 +++++++++++++++++++++++++++++- cmd/static/images/bird.jpg | Bin 0 -> 65158 bytes router.go | 8 +------- 3 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 cmd/static/images/bird.jpg diff --git a/cmd/main.go b/cmd/main.go index c3a6ac5..46dbd11 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -2,8 +2,11 @@ package main import ( "errors" + "fmt" "log" "net/http" + "os" + "strings" "time" "github.com/bnkamalesh/webgo/v5" @@ -11,6 +14,10 @@ import ( "github.com/bnkamalesh/webgo/v5/middleware/cors" ) +var ( + lastModified = time.Now().Format(http.TimeFormat) +) + func helloWorld(w http.ResponseWriter, r *http.Request) { // WebGo context wctx := webgo.Context(r) @@ -70,6 +77,16 @@ func errLogger(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) { } } +// StaticFiles is used to serve static files +func StaticFiles(rw http.ResponseWriter, r *http.Request) { + wctx := webgo.Context(r) + // '..' is replaced to prevent directory traversal which could go out of static directory + path := strings.ReplaceAll(wctx.Params()["w"], "..", "-") + + rw.Header().Set("Last-Modified", lastModified) + http.ServeFile(rw, r, fmt.Sprintf("./cmd/static/%s", path)) +} + func getRoutes() []*webgo.Route { return []*webgo.Route{ { @@ -115,13 +132,24 @@ func getRoutes() []*webgo.Route { Handlers: []http.HandlerFunc{originalResponseWriter}, TrailingSlash: true, }, + { + Name: "static", + Method: http.MethodGet, + Pattern: "/static/:w*", + Handlers: []http.HandlerFunc{StaticFiles}, + TrailingSlash: true, + }, } } func main() { + port := strings.TrimSpace(os.Getenv("HTTP_PORT")) + if port == "" { + port = "8080" + } cfg := &webgo.Config{ Host: "", - Port: "8080", + Port: port, ReadTimeout: 15 * time.Second, WriteTimeout: 60 * time.Second, } diff --git a/cmd/static/images/bird.jpg b/cmd/static/images/bird.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba97816fc43b272259d10b0ad4ad3317b847c8b6 GIT binary patch literal 65158 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 D@d9HZ literal 0 HcmV?d00001 diff --git a/router.go b/router.go index d9a7caa..a5c30ab 100644 --- a/router.go +++ b/router.go @@ -58,7 +58,7 @@ type customResponseWriter struct { // WriteHeader is the interface implementation to get HTTP response code and add // it to the custom response writer func (crw *customResponseWriter) WriteHeader(code int) { - if crw.written || crw.headerWritten { + if crw.headerWritten { return } @@ -70,13 +70,7 @@ func (crw *customResponseWriter) WriteHeader(code int) { // Write is the interface implementation to respond to the HTTP request, // but check if a response was already sent. func (crw *customResponseWriter) Write(body []byte) (int, error) { - if crw.written { - LOGHANDLER.Warn(errMultiWrite) - return 0, nil - } - crw.WriteHeader(crw.statusCode) - crw.written = true return crw.ResponseWriter.Write(body) }