mirror of https://github.com/v2ray/v2ray-core
better error handling in vmess inbound
parent
43cc81e5a8
commit
13e4506781
|
@ -147,18 +147,24 @@ func transferResponse(session *encoding.ServerSession, request *protocol.Request
|
||||||
bodyWriter := session.EncodeResponseBody(request, output)
|
bodyWriter := session.EncodeResponseBody(request, output)
|
||||||
|
|
||||||
// Optimize for small response packet
|
// Optimize for small response packet
|
||||||
if data, err := input.Read(); err == nil {
|
data, err := input.Read()
|
||||||
if err := bodyWriter.Write(data); err != nil {
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := bodyWriter.Write(data); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
data.Release()
|
||||||
|
|
||||||
|
if bufferedWriter, ok := output.(*bufio.BufferedWriter); ok {
|
||||||
|
if err := bufferedWriter.SetBuffered(false); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if bufferedWriter, ok := output.(*bufio.BufferedWriter); ok {
|
if err := buf.PipeUntilEOF(input, bodyWriter); err != nil {
|
||||||
bufferedWriter.SetBuffered(false)
|
return err
|
||||||
}
|
|
||||||
|
|
||||||
if err := buf.PipeUntilEOF(input, bodyWriter); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if request.Option.Has(protocol.RequestOptionChunkStream) {
|
if request.Option.Has(protocol.RequestOptionChunkStream) {
|
||||||
|
|
Loading…
Reference in New Issue