Commit e14a62f1 authored by Matthew Holt's avatar Matthew Holt

pprof: Set proper Content-Type header

The standard lib pprof library doesn't set its own Content-Type header
properly. If pprof is used with gzip, the index endpoint will be
interpreted as a .gz file; so we force its hand and set the header.
parent 94e382ef
...@@ -32,7 +32,13 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) ...@@ -32,7 +32,13 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error)
// https://golang.org/src/net/http/pprof/pprof.go#L67 // https://golang.org/src/net/http/pprof/pprof.go#L67
func NewMux() *http.ServeMux { func NewMux() *http.ServeMux {
mux := http.NewServeMux() mux := http.NewServeMux()
mux.HandleFunc(BasePath+"/", pp.Index) mux.HandleFunc(BasePath+"/", func(w http.ResponseWriter, r *http.Request) {
// this endpoint, as implemented in the standard library, doesn't set
// its Content-Type header, so using this can confuse clients, especially
// if gzipping...
w.Header().Set("Content-Type", "text/html; charset=utf-8")
pp.Index(w, r)
})
mux.HandleFunc(BasePath+"/cmdline", pp.Cmdline) mux.HandleFunc(BasePath+"/cmdline", pp.Cmdline)
mux.HandleFunc(BasePath+"/profile", pp.Profile) mux.HandleFunc(BasePath+"/profile", pp.Profile)
mux.HandleFunc(BasePath+"/symbol", pp.Symbol) mux.HandleFunc(BasePath+"/symbol", pp.Symbol)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment