From 2a51b71ba4159c778549d5cbdf1b8a5d99f24a17 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Sun, 9 Apr 2017 09:08:10 +0200 Subject: [PATCH] use merging reader only for tcp traffic --- proxy/vmess/inbound/inbound.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/proxy/vmess/inbound/inbound.go b/proxy/vmess/inbound/inbound.go index ac0b87019..e4ac0087b 100644 --- a/proxy/vmess/inbound/inbound.go +++ b/proxy/vmess/inbound/inbound.go @@ -140,9 +140,12 @@ func transferResponse(timer signal.ActivityTimer, session *encoding.ServerSessio bodyWriter := session.EncodeResponseBody(request, output) - mergeReader := buf.NewMergingReader(input) + var reader buf.Reader = input + if request.Command == protocol.RequestCommandTCP { + reader = buf.NewMergingReader(input) + } // Optimize for small response packet - data, err := mergeReader.Read() + data, err := reader.Read() if err != nil { return err } @@ -158,7 +161,7 @@ func transferResponse(timer signal.ActivityTimer, session *encoding.ServerSessio } } - if err := buf.PipeUntilEOF(timer, mergeReader, bodyWriter); err != nil { + if err := buf.PipeUntilEOF(timer, reader, bodyWriter); err != nil { return err }