Bläddra i källkod

Try writing again when there are some bytes left

V2Ray 10 år sedan
förälder
incheckning
cdea39ff95
1 ändrade filer med 4 tillägg och 1 borttagningar
  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