Browse Source

clear logic in v2io.Pipe

v2ray 9 years ago
parent
commit
7fd94e1116
1 changed files with 7 additions and 3 deletions
  1. 7 3
      common/io/transport.go

+ 7 - 3
common/io/transport.go

@@ -3,12 +3,16 @@ package io
 func Pipe(reader Reader, writer Writer) error {
 	for {
 		buffer, err := reader.Read()
-		if buffer.Len() > 0 {
-			err = writer.Write(buffer)
-		} else {
+		if err != nil {
+			return nil
+		}
+
+		if buffer.IsEmpty() {
 			buffer.Release()
+			continue
 		}
 
+		err = writer.Write(buffer)
 		if err != nil {
 			return nil
 		}