gzip: Fix Content-Length header for proxies requests (closes #38)

This commit is contained in:
Matthew Holt 2015-05-02 09:20:39 -06:00
parent 9df9ad975d
commit ca95b561dc

View file

@ -64,6 +64,15 @@ type gzipResponseWriter struct {
http.ResponseWriter
}
// WriteHeader wraps the underlying WriteHeader method to prevent
// problems with conflicting headers from proxied backends. For
// example, a backend system that calculates Content-Length would
// be wrong because it doesn't know it's being gzipped.
func (w gzipResponseWriter) WriteHeader(code int) {
w.Header().Del("Content-Length")
w.ResponseWriter.WriteHeader(code)
}
// Write wraps the underlying Write method to do compression.
func (w gzipResponseWriter) Write(b []byte) (int, error) {
if w.Header().Get("Content-Type") == "" {