diff --git a/commands/http/multifilereader.go b/commands/http/multifilereader.go index 7d976c7b98939b712b6f7e695a28c669807a5ee1..1e2d47e3bc3028cb335c5a24bf8a533ac2b085e9 100644 --- a/commands/http/multifilereader.go +++ b/commands/http/multifilereader.go @@ -90,21 +90,16 @@ func (mfr *MultiFileReader) Read(buf []byte) (written int, err error) { } } - var reader io.Reader - + // if the buffer has something in it, read from it if mfr.buf.Len() > 0 { - // if the buffer has something in it, read from it - reader = &mfr.buf - - } else if mfr.currentFile != nil { - // otherwise, read from file data - reader = mfr.currentFile + return mfr.buf.Read(buf) } - written, err = reader.Read(buf) - if err == io.EOF && reader == mfr.currentFile { + // otherwise, read from file data + written, err = mfr.currentFile.Read(buf) + if err == io.EOF { mfr.currentFile = nil - return mfr.Read(buf) + return written, nil } return written, err }