File tree Expand file tree Collapse file tree 3 files changed +298
-207
lines changed Expand file tree Collapse file tree 3 files changed +298
-207
lines changed Original file line number Diff line number Diff line change @@ -93,8 +93,7 @@ type OriginProxy interface {
9393
9494type ResponseWriter interface {
9595 WriteRespHeaders (status int , header http.Header ) error
96- WriteErrorResponse ()
97- io.ReadWriter
96+ io.Writer
9897}
9998
10099type ConnectedFuse interface {
Original file line number Diff line number Diff line change @@ -177,11 +177,28 @@ func (p *proxy) proxyStreamRequest(
177177 originConn .Close ()
178178 }()
179179
180- originConn .Stream (serveCtx , w , p .log )
180+ eyeballStream := & bidirectionalStream {
181+ writer : w ,
182+ reader : req .Body ,
183+ }
184+ originConn .Stream (serveCtx , eyeballStream , p .log )
181185 p .logOriginResponse (resp , fields )
182186 return nil
183187}
184188
189+ type bidirectionalStream struct {
190+ reader io.Reader
191+ writer io.Writer
192+ }
193+
194+ func (wr * bidirectionalStream ) Read (p []byte ) (n int , err error ) {
195+ return wr .reader .Read (p )
196+ }
197+
198+ func (wr * bidirectionalStream ) Write (p []byte ) (n int , err error ) {
199+ return wr .writer .Write (p )
200+ }
201+
185202func (p * proxy ) writeEventStream (w connection.ResponseWriter , respBody io.ReadCloser ) {
186203 reader := bufio .NewReader (respBody )
187204 for {
You can’t perform that action at this time.
0 commit comments