github.com/Psiphon-Labs/psiphon-tunnel-core@v2.0.28+incompatible/psiphon/common/quic/gquic-go/h2quic/request_body.go (about)

     1  package h2quic
     2  
     3  import (
     4  	"io"
     5  
     6  	quic "github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common/quic/gquic-go"
     7  )
     8  
     9  type requestBody struct {
    10  	requestRead bool
    11  	dataStream  quic.Stream
    12  }
    13  
    14  // make sure the requestBody can be used as a http.Request.Body
    15  var _ io.ReadCloser = &requestBody{}
    16  
    17  func newRequestBody(stream quic.Stream) *requestBody {
    18  	return &requestBody{dataStream: stream}
    19  }
    20  
    21  func (b *requestBody) Read(p []byte) (int, error) {
    22  	b.requestRead = true
    23  	return b.dataStream.Read(p)
    24  }
    25  
    26  func (b *requestBody) Close() error {
    27  	// stream's Close() closes the write side, not the read side
    28  	return nil
    29  }