"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)
return nil
}
defer dir.Close()
- fis, err := dir.Readdir(0)
+ entries, err := dir.ReadDir(0)
dir.Close()
if err != nil {
ctx.LogE("reass", nncp.LEs{{K: "Path", V: dirPath}}, err, logMsg)
return nil
}
metaPaths := make([]string, 0)
- for _, fi := range fis {
- if strings.HasSuffix(fi.Name(), nncp.ChunkedSuffixMeta) {
- metaPaths = append(metaPaths, filepath.Join(dirPath, fi.Name()))
+ for _, entry := range entries {
+ if strings.HasSuffix(entry.Name(), nncp.ChunkedSuffixMeta) {
+ metaPaths = append(metaPaths, filepath.Join(dirPath, entry.Name()))
}
}
return metaPaths