mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
fix: magnet link metainfo corrupted on restart (#2790)
This commit is contained in:
@@ -100,6 +100,7 @@ bool tr_ctorSetMetainfo(tr_ctor* ctor, char const* metainfo, size_t len, tr_erro
|
|||||||
bool tr_ctorSetMetainfoFromMagnetLink(tr_ctor* ctor, char const* magnet_link, tr_error** error)
|
bool tr_ctorSetMetainfoFromMagnetLink(tr_ctor* ctor, char const* magnet_link, tr_error** error)
|
||||||
{
|
{
|
||||||
ctor->torrent_filename.clear();
|
ctor->torrent_filename.clear();
|
||||||
|
ctor->metainfo = {};
|
||||||
return ctor->metainfo.parseMagnet(magnet_link != nullptr ? magnet_link : "", error);
|
return ctor->metainfo.parseMagnet(magnet_link != nullptr ? magnet_link : "", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -290,9 +291,11 @@ bool tr_ctorGetIncompleteDir(tr_ctor const* ctor, char const** setme)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr_torrent_metainfo&& tr_ctorStealMetainfo(tr_ctor* ctor)
|
tr_torrent_metainfo tr_ctorStealMetainfo(tr_ctor* ctor)
|
||||||
{
|
{
|
||||||
return std::move(ctor->metainfo);
|
auto metainfo = tr_torrent_metainfo{};
|
||||||
|
std::swap(ctor->metainfo, metainfo);
|
||||||
|
return metainfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr_torrent_metainfo const* tr_ctorGetMetainfo(tr_ctor const* ctor)
|
tr_torrent_metainfo const* tr_ctorGetMetainfo(tr_ctor const* ctor)
|
||||||
|
|||||||
@@ -769,7 +769,7 @@ void tr_torrentGotBlock(tr_torrent* tor, tr_block_index_t blockIndex);
|
|||||||
|
|
||||||
tr_peer_id_t const& tr_torrentGetPeerId(tr_torrent* tor);
|
tr_peer_id_t const& tr_torrentGetPeerId(tr_torrent* tor);
|
||||||
|
|
||||||
tr_torrent_metainfo&& tr_ctorStealMetainfo(tr_ctor* ctor);
|
tr_torrent_metainfo tr_ctorStealMetainfo(tr_ctor* ctor);
|
||||||
|
|
||||||
bool tr_ctorSetMetainfoFromFile(tr_ctor* ctor, std::string const& filename, tr_error** error);
|
bool tr_ctorSetMetainfoFromFile(tr_ctor* ctor, std::string const& filename, tr_error** error);
|
||||||
bool tr_ctorSetMetainfoFromMagnetLink(tr_ctor* ctor, std::string const& filename, tr_error** error);
|
bool tr_ctorSetMetainfoFromMagnetLink(tr_ctor* ctor, std::string const& filename, tr_error** error);
|
||||||
|
|||||||
Reference in New Issue
Block a user