backend.LoadAll: return nil on expected error

The current code returns io.ErrUnexpectedEOF, but it is the normal,
expected behaviour of the function LoadAll() to load until the item is
completely loaded. Therefore, the io.ErrUnexpectedEOF is not returned to
the caller.
This commit is contained in:
Alexander Neumann 2016-02-04 19:37:33 +01:00
parent a37ed45534
commit e9a21c1dc6
1 changed files with 8 additions and 1 deletions

View File

@ -1,7 +1,11 @@
package backend
import "io"
// LoadAll reads all data stored in the backend for the handle. The buffer buf
// is resized to accomodate all data in the blob.
// is resized to accomodate all data in the blob. Errors returned by be.Load()
// are passed on, except io.ErrUnexpectedEOF is silenced and nil returned
// instead, since it means this function is working properly.
func LoadAll(be Backend, h Handle, buf []byte) ([]byte, error) {
fi, err := be.Stat(h)
if err != nil {
@ -13,6 +17,9 @@ func LoadAll(be Backend, h Handle, buf []byte) ([]byte, error) {
}
n, err := be.Load(h, buf, 0)
if err == io.ErrUnexpectedEOF {
err = nil
}
buf = buf[:n]
return buf, err
}