Use custom storage when reloading torrent

PR #20998.
This commit is contained in:
Vladimir Golovnev 2024-06-28 07:14:19 +03:00 committed by Vladimir Golovnev (Glassez)
parent a3a53e2e0e
commit 78c549f83e
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7
2 changed files with 9 additions and 2 deletions

View file

@ -240,11 +240,11 @@ void CustomDiskIOThread::handleCompleteFiles(lt::storage_index_t storage, const
lt::storage_interface *customStorageConstructor(const lt::storage_params &params, lt::file_pool &pool) lt::storage_interface *customStorageConstructor(const lt::storage_params &params, lt::file_pool &pool)
{ {
return new CustomStorage {params, pool}; return new CustomStorage(params, pool);
} }
CustomStorage::CustomStorage(const lt::storage_params &params, lt::file_pool &filePool) CustomStorage::CustomStorage(const lt::storage_params &params, lt::file_pool &filePool)
: lt::default_storage {params, filePool} : lt::default_storage(params, filePool)
, m_savePath {params.path} , m_savePath {params.path}
{ {
} }

View file

@ -77,6 +77,10 @@
#include "base/utils/os.h" #include "base/utils/os.h"
#endif // Q_OS_MACOS || Q_OS_WIN #endif // Q_OS_MACOS || Q_OS_WIN
#ifndef QBT_USES_LIBTORRENT2
#include "customstorage.h"
#endif
using namespace BitTorrent; using namespace BitTorrent;
namespace namespace
@ -1860,6 +1864,9 @@ void TorrentImpl::reload()
auto *const extensionData = new ExtensionData; auto *const extensionData = new ExtensionData;
p.userdata = LTClientData(extensionData); p.userdata = LTClientData(extensionData);
#ifndef QBT_USES_LIBTORRENT2
p.storage = customStorageConstructor;
#endif
m_nativeHandle = m_nativeSession->add_torrent(p); m_nativeHandle = m_nativeSession->add_torrent(p);
m_nativeStatus = extensionData->status; m_nativeStatus = extensionData->status;