in elastictransport/logger.go [433:446]
func duplicateBody(body io.ReadCloser) (io.ReadCloser, io.ReadCloser, error) {
var (
b1 bytes.Buffer
b2 bytes.Buffer
tr = io.TeeReader(body, &b2)
)
_, err := b1.ReadFrom(tr)
if err != nil {
return ioutil.NopCloser(io.MultiReader(&b1, errorReader{err: err})), ioutil.NopCloser(io.MultiReader(&b2, errorReader{err: err})), err
}
defer func() { body.Close() }()
return ioutil.NopCloser(&b1), ioutil.NopCloser(&b2), nil
}