func()

in elastictransport/gzip.go [103:123]


func (pg *pooledGzipCompressor) compress(rc io.ReadCloser) (*bytes.Buffer, error) {
	writer := pg.gzipWriterPool.Get().(*gzipWriter)
	defer pg.gzipWriterPool.Put(writer)

	if writer.err != nil {
		return nil, fmt.Errorf("failed setting up up compress request body (level %d): %s",
			pg.compressionLevel, writer.err)
	}

	buf := pg.bufferPool.Get().(*bytes.Buffer)
	buf.Reset()
	writer.writer.Reset(buf)

	if _, err := io.Copy(writer.writer, rc); err != nil {
		return nil, fmt.Errorf("failed to compress request body: %s", err)
	}
	if err := writer.writer.Close(); err != nil {
		return nil, fmt.Errorf("failed to compress request body (during close): %s", err)
	}
	return buf, nil
}