X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=storage%2Ffile-piece.go;h=d30e1c1a4d8cee554507f290758059bfefc90e6e;hb=refs%2Fheads%2Fbtrtrc;hp=98fb806b8d3ae8ff5317a4accc401ae55075d240;hpb=bcd7fd4a6d83f4aca1e9e3d4c35997ef6aca405d;p=btrtrc.git diff --git a/storage/file-piece.go b/storage/file-piece.go index 98fb806b..4a04fec5 100644 --- a/storage/file-piece.go +++ b/storage/file-piece.go @@ -6,7 +6,6 @@ import ( "os" "github.com/anacrolix/torrent/metainfo" - "github.com/anacrolix/torrent/segments" ) type filePieceImpl struct { @@ -33,19 +32,12 @@ func (fs *filePieceImpl) Completion() Completion { verified := true if c.Complete { // If it's allegedly complete, check that its constituent files have the necessary length. - if !fs.segmentLocater.Locate(segments.Extent{ - Start: fs.p.Offset(), - Length: fs.p.Length(), - }, func(i int, extent segments.Extent) bool { - file := fs.files[i] - s, err := os.Stat(file.path) - if err != nil || s.Size() < extent.Start+extent.Length { + for _, fi := range extentCompleteRequiredLengths(fs.p.Info, fs.p.Offset(), fs.p.Length()) { + s, err := os.Stat(PathShortener(fs.files[fi.fileIndex].path)) + if err != nil || s.Size() < fi.length { verified = false - return false + break } - return true - }) { - panic("files do not cover piece extent") } }