progress/copycallback: increment with bytes read regardless of error

This commit is contained in:
Taylor Blau 2017-02-16 18:32:42 -07:00
parent 09f6330aaa
commit a2a7b09762

@ -31,12 +31,11 @@ func (r *bodyWithCallback) Read(p []byte) (int, error) {
if n > 0 { if n > 0 {
r.readSize += int64(n) r.readSize += int64(n)
}
if err == nil && r.c != nil { if (err == nil || err == io.EOF) && r.c != nil {
err = r.c(r.totalSize, r.readSize, n) err = r.c(r.totalSize, r.readSize, n)
}
} }
return n, err return n, err
} }
@ -52,12 +51,11 @@ func (w *CallbackReader) Read(p []byte) (int, error) {
if n > 0 { if n > 0 {
w.ReadSize += int64(n) w.ReadSize += int64(n)
}
if err == nil && w.C != nil { if (err == nil || err == io.EOF) && w.C != nil {
err = w.C(w.TotalSize, w.ReadSize, n) err = w.C(w.TotalSize, w.ReadSize, n)
}
} }
return n, err return n, err
} }