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 }