forked from TrueCloudLab/restic
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:
parent
a37ed45534
commit
e9a21c1dc6
1 changed files with 8 additions and 1 deletions
|
@ -1,7 +1,11 @@
|
||||||
package backend
|
package backend
|
||||||
|
|
||||||
|
import "io"
|
||||||
|
|
||||||
// LoadAll reads all data stored in the backend for the handle. The buffer buf
|
// 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) {
|
func LoadAll(be Backend, h Handle, buf []byte) ([]byte, error) {
|
||||||
fi, err := be.Stat(h)
|
fi, err := be.Stat(h)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -13,6 +17,9 @@ func LoadAll(be Backend, h Handle, buf []byte) ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
n, err := be.Load(h, buf, 0)
|
n, err := be.Load(h, buf, 0)
|
||||||
|
if err == io.ErrUnexpectedEOF {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
buf = buf[:n]
|
buf = buf[:n]
|
||||||
return buf, err
|
return buf, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue