mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-10 05:44:25 +00:00
Merge pull request #3242 from glassez/hotfixes
Fix some #2892 regressions. Closes #3210.
This commit is contained in:
commit
0172ab1f50
@ -742,8 +742,13 @@ void Session::processBigRatios()
|
|||||||
if (torrent->isSeed() && (torrent->ratioLimit() != TorrentHandle::NO_RATIO_LIMIT)) {
|
if (torrent->isSeed() && (torrent->ratioLimit() != TorrentHandle::NO_RATIO_LIMIT)) {
|
||||||
const qreal ratio = torrent->realRatio();
|
const qreal ratio = torrent->realRatio();
|
||||||
qreal ratioLimit = torrent->ratioLimit();
|
qreal ratioLimit = torrent->ratioLimit();
|
||||||
if (ratioLimit == TorrentHandle::USE_GLOBAL_RATIO)
|
if (ratioLimit == TorrentHandle::USE_GLOBAL_RATIO) {
|
||||||
ratioLimit = m_globalMaxRatio;
|
// If Global Max Ratio is really set...
|
||||||
|
if (m_globalMaxRatio >= 0)
|
||||||
|
ratioLimit = m_globalMaxRatio;
|
||||||
|
else
|
||||||
|
continue;
|
||||||
|
}
|
||||||
qDebug("Ratio: %f (limit: %f)", ratio, ratioLimit);
|
qDebug("Ratio: %f (limit: %f)", ratio, ratioLimit);
|
||||||
Q_ASSERT(ratioLimit >= 0.f);
|
Q_ASSERT(ratioLimit >= 0.f);
|
||||||
|
|
||||||
@ -2149,6 +2154,8 @@ void Session::handleAddTorrentAlert(libtorrent::add_torrent_alert *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
saveTorrentResumeData(torrent);
|
saveTorrentResumeData(torrent);
|
||||||
|
if ((torrent->ratioLimit() >= 0) && !m_bigRatioTimer->isActive())
|
||||||
|
m_bigRatioTimer->start();
|
||||||
|
|
||||||
// Send torrent addition signal
|
// Send torrent addition signal
|
||||||
emit torrentAdded(torrent);
|
emit torrentAdded(torrent);
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include <libtorrent/bencode.hpp>
|
#include <libtorrent/bencode.hpp>
|
||||||
#include <libtorrent/address.hpp>
|
#include <libtorrent/address.hpp>
|
||||||
#include <libtorrent/alert_types.hpp>
|
#include <libtorrent/alert_types.hpp>
|
||||||
|
#include <libtorrent/create_torrent.hpp>
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
@ -1258,15 +1259,8 @@ bool TorrentHandle::saveTorrentFile(const QString &path)
|
|||||||
{
|
{
|
||||||
if (!m_torrentInfo.isValid()) return false;
|
if (!m_torrentInfo.isValid()) return false;
|
||||||
|
|
||||||
// TODO: Use libtorrent::create_torrent() here!
|
libt::create_torrent torrentCreator(*(m_torrentInfo.nativeInfo()));
|
||||||
|
libt::entry torrentEntry = torrentCreator.generate();
|
||||||
libt::entry meta = libt::bdecode(m_torrentInfo.metadata().data(),
|
|
||||||
m_torrentInfo.metadata().data() + m_torrentInfo.metadata().size());
|
|
||||||
libt::entry torrentEntry(libt::entry::dictionary_t);
|
|
||||||
torrentEntry["info"] = meta;
|
|
||||||
QList<TrackerEntry> trackers = m_torrentInfo.trackers();
|
|
||||||
if (!trackers.isEmpty())
|
|
||||||
torrentEntry["announce"] = trackers.first().nativeEntry().url;
|
|
||||||
|
|
||||||
QVector<char> out;
|
QVector<char> out;
|
||||||
libt::bencode(std::back_inserter(out), torrentEntry);
|
libt::bencode(std::back_inserter(out), torrentEntry);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user