From d49f762f6d9cdc2e92e8de40f0b0e99a9d0c4fc9 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Fri, 21 Jun 2019 14:36:26 -0600 Subject: Various bug fixes and minor improvements - Fix static responder so it doesn't replace its own headers config, and instead replaces the actual response header values - caddyhttp.ResponseRecorder type optionally buffers response - Add interface guards to ensure regexp matchers get provisioned - Use default HTTP port if one is not explicitly set - Encode middleware writes status code 200 if not written upstream - Templates and markdown only try to execute on text responses - Static file server sets Content-Type based on file extension only (this whole thing -- MIME sniffing, etc -- needs more configurability) --- modules/caddyhttp/staticresp.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'modules/caddyhttp/staticresp.go') diff --git a/modules/caddyhttp/staticresp.go b/modules/caddyhttp/staticresp.go index dfb3277..f48fcea 100644 --- a/modules/caddyhttp/staticresp.go +++ b/modules/caddyhttp/staticresp.go @@ -33,10 +33,11 @@ func (s Static) ServeHTTP(w http.ResponseWriter, r *http.Request) error { // set all headers for field, vals := range s.Headers { field = repl.ReplaceAll(field, "") + newVals := make([]string, len(vals)) for i := range vals { - vals[i] = repl.ReplaceAll(vals[i], "") + newVals[i] = repl.ReplaceAll(vals[i], "") } - w.Header()[field] = vals + w.Header()[field] = newVals } // do not allow Go to sniff the content-type -- cgit v1.2.3