Переглянути джерело

use merging reader only for tcp traffic

Darien Raymond 8 роки тому
батько
коміт
2a51b71ba4
1 змінених файлів з 6 додано та 3 видалено
  1. 6 3
      proxy/vmess/inbound/inbound.go

+ 6 - 3
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
 	}