From b6328d61534489f2e69d6f459c0a00aa2a3edd7f Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Fri, 7 Jun 2024 17:19:34 +0300 Subject: [PATCH] set short timeouts in GetTorrent, NewTorrent and Preload log --- server/torr/apihelper.go | 6 +++++- server/torr/preload.go | 6 +++++- server/torr/torrent.go | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/server/torr/apihelper.go b/server/torr/apihelper.go index 7406f20..ec7b640 100644 --- a/server/torr/apihelper.go +++ b/server/torr/apihelper.go @@ -87,9 +87,13 @@ func SaveTorrentToDB(torr *Torrent) { func GetTorrent(hashHex string) *Torrent { hash := metainfo.NewHashFromHex(hashHex) + timeout := time.Second * time.Duration(sets.BTsets.TorrentDisconnectTimeout) + if timeout > time.Minute { + timeout = time.Minute + } tor := bts.GetTorrent(hash) if tor != nil { - tor.AddExpiredTime(time.Minute) + tor.AddExpiredTime(timeout) return tor } diff --git a/server/torr/preload.go b/server/torr/preload.go index 1b83309..a445cbb 100644 --- a/server/torr/preload.go +++ b/server/torr/preload.go @@ -59,12 +59,16 @@ func (t *Torrent) Preload(index int, size int64) { } if t.Info() != nil { + timeout := time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout) + if timeout > time.Minute { + timeout = time.Minute + } // Запуск лога в отдельном потоке go func() { for t.Stat == state.TorrentPreload { stat := fmt.Sprint(file.Torrent().InfoHash().HexString(), " ", utils2.Format(float64(t.PreloadedBytes)), "/", utils2.Format(float64(t.PreloadSize)), " Speed:", utils2.Format(t.DownloadSpeed), " Peers:", t.Torrent.Stats().ActivePeers, "/", t.Torrent.Stats().TotalPeers, " [Seeds:", t.Torrent.Stats().ConnectedSeeders, "]") log.TLogln("Preload:", stat) - t.AddExpiredTime(time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout)) + t.AddExpiredTime(timeout) time.Sleep(time.Second) } }() diff --git a/server/torr/torrent.go b/server/torr/torrent.go index aae3fc9..afd29c2 100644 --- a/server/torr/torrent.go +++ b/server/torr/torrent.go @@ -85,6 +85,11 @@ func NewTorrent(spec *torrent.TorrentSpec, bt *BTServer) (*Torrent, error) { return tor, nil } + timeout := time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout) + if timeout > time.Minute { + timeout = time.Minute + } + torr := new(Torrent) torr.Torrent = goTorrent torr.Stat = state.TorrentAdded @@ -92,7 +97,7 @@ func NewTorrent(spec *torrent.TorrentSpec, bt *BTServer) (*Torrent, error) { torr.bt = bt torr.closed = goTorrent.Closed() torr.TorrentSpec = spec - torr.AddExpiredTime(time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout)) + torr.AddExpiredTime(timeout) torr.Timestamp = time.Now().Unix() go torr.watch()