From 81bc5481ab9618111baa9adbcd5e8f0ca738ce5e Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Thu, 3 Jun 2021 09:36:49 +0300 Subject: [PATCH] add remove disk cache on drop --- server/settings/btsets.go | 13 ++++++++----- server/torr/storage/torrstor/cache.go | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/server/settings/btsets.go b/server/settings/btsets.go index a21e2c0..8b654c6 100644 --- a/server/settings/btsets.go +++ b/server/settings/btsets.go @@ -8,11 +8,14 @@ import ( type BTSets struct { // Cache - CacheSize int64 // in byte, def 200 mb - PreloadBuffer bool - ReaderReadAHead int // in percent, 5%-100%, [...S__X__E...] [S-E] not clean - UseDisk bool - TorrentsSavePath string + CacheSize int64 // in byte, def 200 mb + PreloadBuffer bool + ReaderReadAHead int // in percent, 5%-100%, [...S__X__E...] [S-E] not clean + + // Disk + UseDisk bool + TorrentsSavePath string + RemoveCacheOnDrop bool // Torrent ForceEncrypt bool diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index 3824c5a..f14bbca 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -90,11 +90,19 @@ func (c *Cache) Piece(m metainfo.Piece) storage.PieceImpl { func (c *Cache) Close() error { log.TLogln("Close cache for:", c.hash) delete(c.storage.caches, c.hash) - //for _, v := range c.pieces { - // if v.dPiece != nil { - // os.Remove(v.dPiece.name) - // } - //} + + if settings.BTsets.RemoveCacheOnDrop { + name := filepath.Join(settings.BTsets.TorrentsSavePath, c.hash.HexString()) + if name != "" && name != "/" { + for _, v := range c.pieces { + if v.dPiece != nil { + os.Remove(v.dPiece.name) + } + } + os.Remove(name) + } + } + c.pieces = nil c.muReaders.Lock()