diff --git a/internal/tun2/connection.go b/internal/tun2/connection.go index aa79c81..20f05dc 100644 --- a/internal/tun2/connection.go +++ b/internal/tun2/connection.go @@ -4,6 +4,7 @@ import ( "bufio" "context" "io" + "io/ioutil" "net" "net/http" "time" @@ -138,12 +139,20 @@ func (c *Connection) RoundTrip(req *http.Request) (*http.Response, error) { if err != nil { return nil, errors.Wrap(err, ErrCantReadResponse.Error()) } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, errors.Wrap(err, "can't read response body") + } resp.Body = &mixedReadCloser{ Reader: buf, Closer: stream, } + resp.ContentLength = int64(len(body)) + return resp, nil }