From b6a35e94777f792cb47e737a0c5d6cd569e63d9e Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sun, 23 May 2021 19:39:10 +0300 Subject: [PATCH] Don't log any error when "queue" file doesn't exist --- .../bittorrent/bencoderesumedatastorage.cpp | 60 +++++++++++-------- .../bittorrent/bencoderesumedatastorage.h | 1 + 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/src/base/bittorrent/bencoderesumedatastorage.cpp b/src/base/bittorrent/bencoderesumedatastorage.cpp index e6157caf8..0fd3a8c75 100644 --- a/src/base/bittorrent/bencoderesumedatastorage.cpp +++ b/src/base/bittorrent/bencoderesumedatastorage.cpp @@ -125,32 +125,7 @@ BitTorrent::BencodeResumeDataStorage::BencodeResumeDataStorage(const QString &pa m_registeredTorrents.append(TorrentID::fromString(rxMatch.captured(1))); } - QFile queueFile {m_resumeDataDir.absoluteFilePath(QLatin1String("queue"))}; - if (queueFile.open(QFile::ReadOnly)) - { - const QRegularExpression hashPattern {QLatin1String("^([A-Fa-f0-9]{40})$")}; - QByteArray line; - int start = 0; - while (!(line = queueFile.readLine().trimmed()).isEmpty()) - { - const QRegularExpressionMatch rxMatch = hashPattern.match(line); - if (rxMatch.hasMatch()) - { - const auto torrentID = TorrentID::fromString(rxMatch.captured(1)); - const int pos = m_registeredTorrents.indexOf(torrentID, start); - if (pos != -1) - { - std::swap(m_registeredTorrents[start], m_registeredTorrents[pos]); - ++start; - } - } - } - } - else - { - LogMsg(tr("Couldn't load torrents queue from '%1'. Error: %2") - .arg(queueFile.fileName(), queueFile.errorString()), Log::WARNING); - } + loadQueue(m_resumeDataDir.absoluteFilePath(QLatin1String("queue"))); qDebug("Registered torrents count: %d", m_registeredTorrents.size()); @@ -295,6 +270,39 @@ void BitTorrent::BencodeResumeDataStorage::storeQueue(const QVector & }); } +void BitTorrent::BencodeResumeDataStorage::loadQueue(const QString &queueFilename) +{ + QFile queueFile {queueFilename}; + if (!queueFile.exists()) + return; + + if (queueFile.open(QFile::ReadOnly)) + { + const QRegularExpression hashPattern {QLatin1String("^([A-Fa-f0-9]{40})$")}; + QByteArray line; + int start = 0; + while (!(line = queueFile.readLine().trimmed()).isEmpty()) + { + const QRegularExpressionMatch rxMatch = hashPattern.match(line); + if (rxMatch.hasMatch()) + { + const auto torrentID = TorrentID::fromString(rxMatch.captured(1)); + const int pos = m_registeredTorrents.indexOf(torrentID, start); + if (pos != -1) + { + std::swap(m_registeredTorrents[start], m_registeredTorrents[pos]); + ++start; + } + } + } + } + else + { + LogMsg(tr("Couldn't load torrents queue from '%1'. Error: %2") + .arg(queueFile.fileName(), queueFile.errorString()), Log::WARNING); + } +} + BitTorrent::BencodeResumeDataStorage::Worker::Worker(const QDir &resumeDataDir) : m_resumeDataDir {resumeDataDir} { diff --git a/src/base/bittorrent/bencoderesumedatastorage.h b/src/base/bittorrent/bencoderesumedatastorage.h index 6653fad1f..b631dfaa5 100644 --- a/src/base/bittorrent/bencoderesumedatastorage.h +++ b/src/base/bittorrent/bencoderesumedatastorage.h @@ -56,6 +56,7 @@ namespace BitTorrent void storeQueue(const QVector &queue) const override; private: + void loadQueue(const QString &queueFilename); std::optional loadTorrentResumeData(const QByteArray &data, const TorrentInfo &metadata) const; const QDir m_resumeDataDir;