internal/tun2: forward stream buffered reader and closer to response bodies

This commit is contained in:
Cadey Ratio 2017-10-01 22:52:22 -07:00
parent 6038f2f151
commit 223b816f88
No known key found for this signature in database
GPG Key ID: D607EE27C2E7F89A
1 changed files with 11 additions and 3 deletions

View File

@ -2,8 +2,8 @@ package tun2
import (
"bufio"
"bytes"
"context"
"io"
"io/ioutil"
"net"
"net/http"
@ -127,7 +127,6 @@ func (c *Connection) RoundTrip(req *http.Request) (*http.Response, error) {
if err != nil {
return nil, errors.Wrap(err, ErrCantOpenSessionStream.Error())
}
defer stream.Close()
err = req.Write(stream)
if err != nil {
@ -147,8 +146,17 @@ func (c *Connection) RoundTrip(req *http.Request) (*http.Response, error) {
return nil, errors.Wrap(err, "can't read response body")
}
resp.Body = ioutil.NopCloser(bytes.NewBuffer(body))
resp.Body = &mixedReadCloser{
Reader: buf,
Closer: stream,
}
resp.ContentLength = int64(len(body))
return resp, nil
}
type mixedReadCloser struct {
io.Reader
io.Closer
}