]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix new warning in piece hashing due to new file piece WriteTo
authorMatt Joiner <anacrolix@gmail.com>
Wed, 6 Aug 2025 10:25:27 +0000 (20:25 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 6 Aug 2025 10:25:27 +0000 (20:25 +1000)
storage/file-piece.go
torrent.go

index 23e13da45809cceea84d0d329833861da98929b4..d50c509a338772a70cef7dea5e4c3b5c2823e997 100644 (file)
@@ -288,6 +288,10 @@ func (me *filePieceImpl) WriteTo(w io.Writer) (n int64, err error) {
                if err != nil {
                        return
                }
+               panicif.GreaterThan(n1, extent.Length)
+               if n1 < extent.Length {
+                       return
+               }
                panicif.NotEq(n1, extent.Length)
        }
        return
@@ -305,6 +309,9 @@ func (me *filePieceImpl) writeFileTo(w io.Writer, fileIndex int, extent segments
        var f *os.File
        f, err = me.t.openFile(file)
        if err != nil {
+               if errors.Is(err, fs.ErrNotExist) {
+                       err = nil
+               }
                return
        }
        defer f.Close()
index 76a6f8b419d143df5b8b874654306286edf657d7..f8a50b9278cd5f5625131b4b2b816b7be5a8d118 100644 (file)
@@ -1323,9 +1323,7 @@ func (t *Torrent) hashPieceWithSpecificHash(piece pieceIndex, h hash.Hash) (
        storagePiece := p.Storage()
        var written int64
        written, err = storagePiece.WriteTo(w)
-       if err == nil && written != int64(p.length()) {
-               err = fmt.Errorf("wrote %v bytes from storage, piece has length %v", written, p.length())
-       }
+       // TODO: Require the correct number of bytes were written to pass hash.
        t.countBytesHashed(written)
        return
 }