"fmt"
"hash"
"io"
+ "io/fs"
"log"
"os"
"path/filepath"
for chunkNum, chunkPath := range chunksPaths {
fi, err := os.Stat(chunkPath)
lesChunk := append(les, nncp.LE{K: "Chunk", V: chunkNum})
- if err != nil && os.IsNotExist(err) {
+ if err != nil && errors.Is(err, fs.ErrNotExist) {
ctx.LogI("reass-chunk-miss", lesChunk, func(les nncp.LEs) string {
return fmt.Sprintf("%s: chunk %d missing", logMsg(les), chunkNum)
})
}
var badSize bool
if chunkNum+1 == len(chunksPaths) {
- badSize = uint64(fi.Size()) != metaPkt.FileSize%metaPkt.ChunkSize
+ left := metaPkt.FileSize % metaPkt.ChunkSize
+ badSize = left != 0 && uint64(fi.Size()) != left
} else {
badSize = uint64(fi.Size()) != metaPkt.ChunkSize
}
dstPathCtr := 0
for {
if _, err = os.Stat(dstPath); err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
break
}
log.Fatalln(err)