Mercurial > gemma
changeset 348:9543ca97aa70
Re-enable content gzip encoding in WFS proxy.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 06 Aug 2018 17:10:23 +0200 |
parents | 72c76ab112e9 |
children | 56f6c5ab0f3d |
files | controllers/externalwfs.go |
diffstat | 1 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/controllers/externalwfs.go Mon Aug 06 16:53:45 2018 +0200 +++ b/controllers/externalwfs.go Mon Aug 06 17:10:23 2018 +0200 @@ -97,29 +97,31 @@ xml := isXML(resp.Header) gzipped := strings.Contains(resp.Header.Get("Content-Encoding"), "gzip") - if xml && gzipped { - resp.Header.Del("Content-Encoding") - } if xml { log.Printf("rewrite from %s to %s\n", prefix, to) - var r io.Reader + + pr, pw := io.Pipe() + + var r io.ReadCloser + var w io.WriteCloser if gzipped { var err error r, err = gzip.NewReader(resp.Body) if err != nil { return err } + w = gzip.NewWriter(pw) } else { r = resp.Body + w = pw } - pr, pw := io.Pipe() - - go func(closer io.ReadCloser) { + go func(force io.ReadCloser) { defer func() { + w.Close() pw.Close() - closer.Close() + force.Close() }() /* if _, err := io.Copy(pw, r); err != nil { @@ -127,7 +129,7 @@ return } */ - if err := rewrite(pw, r, prefix, to); err != nil { + if err := rewrite(w, r, prefix, to); err != nil { log.Printf("rewrite failed: %v\n", err) return }