From e05f9a1ff4adcc1d76198c2f3f08c84a88a4523e Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Wed, 6 Aug 2025 20:25:27 +1000 Subject: [PATCH] Fix new warning in piece hashing due to new file piece WriteTo --- storage/file-piece.go | 7 +++++++ torrent.go | 4 +--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/storage/file-piece.go b/storage/file-piece.go index 23e13da4..d50c509a 100644 --- a/storage/file-piece.go +++ b/storage/file-piece.go @@ -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() diff --git a/torrent.go b/torrent.go index 76a6f8b4..f8a50b92 100644 --- a/torrent.go +++ b/torrent.go @@ -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 } -- 2.51.0