Browse Source

Merge pull request #5169 from glassez/tmpname

Use unique temp directories. Closes #5154.
adaptive-webui-19844
sledgehammer999 9 years ago
parent
commit
0a81152267
  1. 1
      src/base/bittorrent/infohash.cpp
  2. 9
      src/base/bittorrent/session.cpp
  3. 1
      src/base/bittorrent/session.h
  4. 4
      src/base/bittorrent/torrenthandle.cpp

1
src/base/bittorrent/infohash.cpp

@ -68,7 +68,6 @@ bool InfoHash::isValid() const @@ -68,7 +68,6 @@ bool InfoHash::isValid() const
return m_valid;
}
InfoHash::operator libtorrent::sha1_hash() const
{
return m_nativeHash;

9
src/base/bittorrent/session.cpp

@ -331,6 +331,13 @@ QString Session::tempPath() const @@ -331,6 +331,13 @@ QString Session::tempPath() const
return m_tempPath;
}
QString Session::torrentTempPath(const InfoHash &hash) const
{
return m_tempPath
+ static_cast<QString>(hash).left(7)
+ "/";
}
bool Session::isValidCategoryName(const QString &name)
{
QRegExp re(R"(^([^\\\/]|[^\\\/]([^\\\/]|\/(?=[^\/]))*[^\\\/])$)");
@ -1398,7 +1405,7 @@ bool Session::findIncompleteFiles(TorrentInfo &torrentInfo, QString &savePath) c @@ -1398,7 +1405,7 @@ bool Session::findIncompleteFiles(TorrentInfo &torrentInfo, QString &savePath) c
bool found = findInDir(savePath, torrentInfo);
if (!found && isTempPathEnabled()) {
savePath = m_tempPath;
savePath = torrentTempPath(torrentInfo.hash());
found = findInDir(savePath, torrentInfo);
}

1
src/base/bittorrent/session.h

@ -185,6 +185,7 @@ namespace BitTorrent @@ -185,6 +185,7 @@ namespace BitTorrent
void setTempPath(QString path);
bool isTempPathEnabled() const;
void setTempPathEnabled(bool enabled);
QString torrentTempPath(const InfoHash &hash) const;
static bool isValidCategoryName(const QString &name);
// returns category itself and all top level categories

4
src/base/bittorrent/torrenthandle.cpp

@ -1392,7 +1392,7 @@ void TorrentHandle::handleStorageMovedAlert(libtorrent::storage_moved_alert *p) @@ -1392,7 +1392,7 @@ void TorrentHandle::handleStorageMovedAlert(libtorrent::storage_moved_alert *p)
// Attempt to remove old folder if empty
QDir oldSaveDir(Utils::Fs::fromNativePath(m_oldPath));
if ((oldSaveDir != QDir(m_session->defaultSavePath())) && (oldSaveDir != QDir(m_session->tempPath()))) {
if (oldSaveDir != QDir(m_session->defaultSavePath())) {
qDebug("Attempting to remove %s", qPrintable(m_oldPath));
QDir().rmpath(m_oldPath);
}
@ -1778,7 +1778,7 @@ void TorrentHandle::adjustActualSavePath_impl() @@ -1778,7 +1778,7 @@ void TorrentHandle::adjustActualSavePath_impl()
}
else {
// Moving all downloading torrents to temporary save path
path = m_session->tempPath();
path = m_session->torrentTempPath(hash());
qDebug() << "Moving torrent to its temp save path:" << path;
}

Loading…
Cancel
Save