소스 검색

Try writing again when there are some bytes left

V2Ray 10 년 전
부모
커밋
cdea39ff95
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      common/net/transport.go

+ 4 - 1
common/net/transport.go

@@ -33,7 +33,10 @@ func ReaderToChan(stream chan<- *alloc.Buffer, reader io.Reader) error {
 // ChanToWriter dumps all content from a given chan to a writer until the chan is closed.
 func ChanToWriter(writer io.Writer, stream <-chan *alloc.Buffer) error {
 	for buffer := range stream {
-		_, err := writer.Write(buffer.Value)
+		nBytes, err := writer.Write(buffer.Value)
+    if nBytes < buffer.Len() {
+      _, err = writer.Write(buffer.Value[nBytes:])
+    }
 		buffer.Release()
 		if err != nil {
 			return err