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()