From d77caa7575efcce001f1bd0c6d3a0f0f517ff4ba Mon Sep 17 00:00:00 2001 From: Ben Sarmiento Date: Sat, 18 Nov 2023 23:59:54 +0100 Subject: [PATCH] Fix chaos causing logic and do a deep copy of file first --- internal/torrent/manager.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/torrent/manager.go b/internal/torrent/manager.go index 3fc11f4..0660ea6 100644 --- a/internal/torrent/manager.go +++ b/internal/torrent/manager.go @@ -572,11 +572,17 @@ func (t *TorrentManager) Repair(accessKey string) { var selectedFiles []*File var links []string torrent.SelectedFiles.IterCb(func(_ string, file *File) { - selectedFiles = append(selectedFiles, file) - if file.Link != "" { - links = append(links, file.Link) + fileCopy := &File{ + File: file.File, + Added: file.Added, + Link: file.Link, + ZurgFS: file.ZurgFS, } - file.Link = "" // empty the links = chaos! + selectedFiles = append(selectedFiles, fileCopy) + if fileCopy.Link != "" { + links = append(links, fileCopy.Link) + } + fileCopy.Link = "" // empty the links = chaos! }) selectedFiles, _ = t.organizeChaos(links, selectedFiles) for _, newFile := range selectedFiles {