diff --git a/src/base/bittorrent/cachestatus.cpp b/src/base/bittorrent/cachestatus.cpp index b7a7e960d..5117f531a 100644 --- a/src/base/bittorrent/cachestatus.cpp +++ b/src/base/bittorrent/cachestatus.cpp @@ -26,6 +26,7 @@ * exception statement from your version. */ +#include #include "cachestatus.h" using namespace BitTorrent; @@ -50,7 +51,11 @@ qreal CacheStatus::readRatio() const int CacheStatus::jobQueueLength() const { +#if LIBTORRENT_VERSION_NUM < 10100 return m_nativeStatus.job_queue_length; +#else + return m_nativeStatus.queued_jobs; +#endif } int CacheStatus::averageJobTime() const diff --git a/src/base/bittorrent/cachestatus.h b/src/base/bittorrent/cachestatus.h index d42a7b4ae..7f03cff82 100644 --- a/src/base/bittorrent/cachestatus.h +++ b/src/base/bittorrent/cachestatus.h @@ -29,8 +29,8 @@ #ifndef BITTORRENT_CACHESTATUS_H #define BITTORRENT_CACHESTATUS_H -#include #include +#include namespace BitTorrent { diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index fdeea71c5..e80fdd0f4 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -360,7 +360,12 @@ void Session::setSessionSettings() sessionSettings.active_lsd_limit = -1; // Outgoing ports +#if LIBTORRENT_VERSION_NUM < 10100 sessionSettings.outgoing_ports = std::make_pair(pref->outgoingPortsMin(), pref->outgoingPortsMax()); +#else + sessionSettings.outgoing_port = pref->outgoingPortsMin(); + sessionSettings.num_outgoing_ports = pref->outgoingPortsMax() - pref->outgoingPortsMin(); +#endif // Ignore limits on LAN qDebug() << "Ignore limits on LAN" << pref->getIgnoreLimitsOnLAN(); sessionSettings.ignore_limits_on_local_network = pref->getIgnoreLimitsOnLAN(); @@ -2261,7 +2266,6 @@ void Session::handleListenSucceededAlert(libt::listen_succeeded_alert *p) void Session::handleListenFailedAlert(libt::listen_failed_alert *p) { - boost::system::error_code ec; QString proto = "TCP"; if (p->sock_type == libt::listen_failed_alert::udp) proto = "UDP"; @@ -2273,12 +2277,24 @@ void Session::handleListenFailedAlert(libt::listen_failed_alert *p) proto = "I2P"; else if (p->sock_type == libt::listen_failed_alert::socks5) proto = "SOCKS5"; + +#if LIBTORRENT_VERSION_NUM < 10100 + boost::system::error_code ec; qDebug() << "Failed listening on " << proto << p->endpoint.address().to_string(ec).c_str() << "/" << p->endpoint.port(); Logger::instance()->addMessage( tr("qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4.", "e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use.") .arg(p->endpoint.address().to_string(ec).c_str()).arg(proto).arg(QString::number(p->endpoint.port())) .arg(QString::fromLocal8Bit(p->error.message().c_str())), Log::CRITICAL); +#else + qDebug() << "Failed listening on " << proto << p->listen_interface(); + Logger::instance()->addMessage( + tr("qBittorrent failed listening on interface %1 [%2]. Reason: %3.", + "e.g: qBittorrent failed listening on interface 192.168.0.1 [TCP]. Reason: already in use.") + .arg(QString::fromUtf8(p->listen_interface())) + .arg(proto) + .arg(Utils::String::fromStdString(p->error.message())), Log::CRITICAL); +#endif } void Session::handleExternalIPAlert(libt::external_ip_alert *p) diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index d7610d525..6eea60981 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -38,6 +38,8 @@ #include #include +#include + #include "base/tristatebool.h" #include "base/types.h" #include "torrentinfo.h" @@ -52,7 +54,16 @@ namespace libtorrent struct session_settings; struct session_status; +#if LIBTORRENT_VERSION_NUM < 10100 struct proxy_settings; +#else + namespace aux + { + struct proxy_settings; + } + + typedef aux::proxy_settings proxy_settings; +#endif class alert; struct torrent_alert; diff --git a/src/base/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp index 8565d327d..4707b5f77 100644 --- a/src/base/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -40,6 +40,9 @@ #include #include #include +#if LIBTORRENT_VERSION_NUM >= 10100 +#include +#endif #include @@ -1067,7 +1070,11 @@ int TorrentHandle::connectionsLimit() const qlonglong TorrentHandle::nextAnnounce() const { +#if LIBTORRENT_VERSION_NUM < 10100 return m_nativeStatus.next_announce.total_seconds(); +#else + return libt::duration_cast(m_nativeStatus.next_announce).count(); +#endif } void TorrentHandle::setName(const QString &name) @@ -1690,7 +1697,11 @@ libtorrent::torrent_handle TorrentHandle::nativeHandle() const void TorrentHandle::updateTorrentInfo() { if (!hasMetadata()) return; +#if LIBTORRENT_VERSION_NUM < 10100 m_torrentInfo = TorrentInfo(m_nativeStatus.torrent_file); +#else + m_torrentInfo = TorrentInfo(m_nativeStatus.torrent_file.lock()); +#endif } void TorrentHandle::initialize() diff --git a/src/base/bittorrent/torrenthandle.h b/src/base/bittorrent/torrenthandle.h index d6679cbe8..882cdb029 100644 --- a/src/base/bittorrent/torrenthandle.h +++ b/src/base/bittorrent/torrenthandle.h @@ -38,6 +38,11 @@ #include #include +#include +#if LIBTORRENT_VERSION_NUM >= 10100 +#include +#endif + #include #include "base/tristatebool.h" diff --git a/src/base/bittorrent/torrentinfo.h b/src/base/bittorrent/torrentinfo.h index c9acc2cc9..f3900a825 100644 --- a/src/base/bittorrent/torrentinfo.h +++ b/src/base/bittorrent/torrentinfo.h @@ -32,6 +32,7 @@ #include #include +#include class QString; class QUrl; @@ -48,8 +49,13 @@ namespace BitTorrent class TorrentInfo { public: +#if LIBTORRENT_VERSION_NUM < 10100 typedef boost::intrusive_ptr NativeConstPtr; typedef boost::intrusive_ptr NativePtr; +#else + typedef boost::shared_ptr NativeConstPtr; + typedef boost::shared_ptr NativePtr; +#endif explicit TorrentInfo(NativeConstPtr nativeInfo = NativeConstPtr()); TorrentInfo(const TorrentInfo &other); diff --git a/src/base/bittorrent/trackerentry.h b/src/base/bittorrent/trackerentry.h index edfcac434..f9d2187c4 100644 --- a/src/base/bittorrent/trackerentry.h +++ b/src/base/bittorrent/trackerentry.h @@ -30,6 +30,10 @@ #define BITTORRENT_TRACKERENTRY_H #include +#include +#if LIBTORRENT_VERSION_NUM >= 10100 +#include +#endif class QString;