From 212f6e7ca7381f66a9b60431f0b02aafd79447de Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Wed, 17 Mar 2021 09:28:14 +0300 Subject: [PATCH] fix always preload --- server/torr/torrent.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server/torr/torrent.go b/server/torr/torrent.go index 14feade..dd25d49 100644 --- a/server/torr/torrent.go +++ b/server/torr/torrent.go @@ -279,13 +279,13 @@ func (t *Torrent) Preload(index int, size int64) { } if t.Info() != nil { - pl := t.Info().PieceLength + pieceLength := t.Info().PieceLength mb5 := int64(5 * 1024 * 1024) - pieceFileStart := int(file.Offset() / pl) - pieceFileEnd := int((file.Offset() + file.Length()) / pl) - readerPieceBefore := int((file.Offset() + size - mb5) / pl) - readerPieceAfter := int((file.Offset() + file.Length() - mb5) / pl) + pieceFileStart := int(file.Offset() / pieceLength) + pieceFileEnd := int((file.Offset() + file.Length()) / pieceLength) + readerPieceBefore := int((file.Offset() + size - mb5) / pieceLength) + readerPieceAfter := int((file.Offset() + file.Length() - mb5) / pieceLength) lastStat := time.Now().Add(-time.Second) @@ -325,6 +325,10 @@ func (t *Torrent) Preload(index int, size int64) { } } } + if t.PreloadedBytes >= size-pieceLength { + isComplete = true + } + t.AddExpiredTime(time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout)) if isComplete { break