From 7fd94e11163058d1de6e64137c8a438c476ef1f6 Mon Sep 17 00:00:00 2001
From: v2ray <admin@v2ray.com>
Date: Wed, 11 May 2016 11:54:29 -0700
Subject: [PATCH] clear logic in v2io.Pipe

---
 common/io/transport.go | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/common/io/transport.go b/common/io/transport.go
index 8ca35264..0a3e672d 100644
--- a/common/io/transport.go
+++ b/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 {
-			buffer.Release()
+		if err != nil {
+			return nil
 		}
 
+		if buffer.IsEmpty() {
+			buffer.Release()
+			continue
+		}
+
+		err = writer.Write(buffer)
 		if err != nil {
 			return nil
 		}