diff options
Diffstat (limited to 'pkg/server/hook/proxy.go')
| -rw-r--r-- | pkg/server/hook/proxy.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/pkg/server/hook/proxy.go b/pkg/server/hook/proxy.go index 172b01a..a488f58 100644 --- a/pkg/server/hook/proxy.go +++ b/pkg/server/hook/proxy.go @@ -1,6 +1,7 @@ package hook import ( + "bufio" "bytes" "errors" "fmt" @@ -45,7 +46,9 @@ func (p *proxy) Send(rq, wq queue.Q) error { } func (p *proxy) Recv(rq, wq queue.Q) error { - resp, err := http.ParseResponse(rq.Reader()) + r := bufio.NewReader(rq.Reader()) + + resp, err := http.ParseResponse(r) if err == nil && resp.Code != http.OK { err = fmt.Errorf("connect failed: %d %s", resp.Code, resp.Desc) @@ -58,7 +61,7 @@ func (p *proxy) Recv(rq, wq queue.Q) error { p.c <- true - return queue.Copy(rq, wq) + return queue.IoCopy(r, wq.Writer()) } func (h *proxyHook) Open(env env.Env) (interface{}, error) { |
