Mercurial > gemma
changeset 357:3e96a15600b7
merge
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 07 Aug 2018 18:00:53 +0200 |
parents | dc8052b60485 (current diff) e170075c22ac (diff) |
children | 55388227e7da |
files | |
diffstat | 1 files changed, 32 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/controllers/externalwfs.go Tue Aug 07 18:00:35 2018 +0200 +++ b/controllers/externalwfs.go Tue Aug 07 18:00:53 2018 +0200 @@ -148,45 +148,46 @@ resp.Header.Del("X-Gemma-From") resp.Header.Del("X-Gemma-To") - xml := isXML(resp.Header) + if !isXML(resp.Header) { + return nil + } + + log.Printf("rewrite from %s to %s\n", from, to) + + pr, pw := io.Pipe() + + var ( + r io.ReadCloser + w io.WriteCloser + err error + ) reader, writer := encoding(resp.Header) - if xml { - log.Printf("rewrite from %s to %s\n", from, to) + if r, err = reader(resp.Body); err != nil { + return err + } - pr, pw := io.Pipe() + if w, err = writer(pw); err != nil { + return err + } - var ( - r io.ReadCloser - w io.WriteCloser - err error - ) - - if r, err = reader(resp.Body); err != nil { - return err - } - - if w, err = writer(pw); err != nil { - return err + go func(force io.ReadCloser) { + defer func() { + //r.Close() + w.Close() + pw.Close() + force.Close() + }() + if err := rewrite(w, r, from, to); err != nil { + log.Printf("rewrite failed: %v\n", err) + return } + log.Println("rewrite successful") + }(resp.Body) - go func(force io.ReadCloser) { - defer func() { - //r.Close() - w.Close() - pw.Close() - force.Close() - }() - if err := rewrite(w, r, from, to); err != nil { - log.Printf("rewrite failed: %v\n", err) - return - } - log.Println("rewrite successful") - }(resp.Body) + resp.Body = pr - resp.Body = pr - } return nil }