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 }