1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-23 22:32:16 +02:00

Compare commits

...

73 Commits

Author SHA1 Message Date
Christophe Dumez
b496cf600b Tagged v2.5.0 release 2010-12-05 08:34:24 +00:00
Christophe Dumez
797a4608bf Disable debug 2010-12-05 08:26:10 +00:00
Christophe Dumez
abb8554c51 Bump to v2.5.0 final 2010-12-05 08:25:27 +00:00
Christophe Dumez
258a3ea3b0 Bump to v2.5.0 final 2010-12-05 08:25:05 +00:00
Christophe Dumez
6d1ad28d8c FEATURE: Download first/last pieces first now applies to all media files in the torrent (Thanks Ahmad) 2010-12-04 20:47:20 +00:00
Christophe Dumez
38aca6af6f BUGFIX: Disable overwrite confirmation in torrent addition dialog (closes # 685269) 2010-12-04 20:02:12 +00:00
Christophe Dumez
0fd8ecd9ee Fix program updater on Windows/Mac 2010-12-04 19:14:14 +00:00
Christophe Dumez
f24224649d Wider torrent addition from URL dialog 2010-12-04 14:18:52 +00:00
Christophe Dumez
b41aa38f39 Code clean up 2010-12-04 14:15:16 +00:00
Christophe Dumez
b267ac169d Code clean up 2010-12-04 14:11:25 +00:00
Christophe Dumez
1c0f1b91e7 Code clean up 2010-12-04 14:09:41 +00:00
Christophe Dumez
9bf673210f Code clean up 2010-12-04 13:58:36 +00:00
Christophe Dumez
42f5cbf2a6 COSMETIC: Use bigger alternative speed icon 2010-12-04 13:55:12 +00:00
Christophe Dumez
45f0383ee2 Several dimension saving fixes 2010-12-04 10:31:14 +00:00
Christophe Dumez
a39c7f52cf Remember torrent import dialog geometry and position 2010-12-04 10:10:05 +00:00
Christophe Dumez
f1ca4f40af Code clean up 2010-12-04 09:59:21 +00:00
Christophe Dumez
62503fb663 Code clean up 2010-12-04 09:51:43 +00:00
Christophe Dumez
0853ae4691 Code clean up 2010-12-04 09:37:13 +00:00
Christophe Dumez
bb19cfce1f Greatly improved the RSS downloader dialog layout 2010-12-04 09:27:28 +00:00
Christophe Dumez
287cdc43c1 Code optimization 2010-12-02 18:21:45 +00:00
Christophe Dumez
79e595c195 Code optimization 2010-12-02 17:36:08 +00:00
Christophe Dumez
d198451bb0 Code clean up 2010-12-02 17:27:01 +00:00
Christophe Dumez
ebf252ce86 Added debug 2010-12-02 17:20:25 +00:00
Christophe Dumez
f9ece8b447 Code clean up 2010-12-02 17:17:50 +00:00
Christophe Dumez
efe5ca6242 Added debug 2010-12-02 17:10:34 +00:00
Christophe Dumez
0dbcf5653d Code clean up 2010-12-02 17:02:13 +00:00
Christophe Dumez
20a201703c Updated bulgarian translation 2010-12-02 15:41:57 +00:00
Christophe Dumez
bfaa6c69fd Fix typo 2010-12-01 19:38:16 +00:00
Christophe Dumez
6744ee8a4d BUGFIX: Improve magnet save path handling (clsoes #683395) 2010-12-01 19:20:27 +00:00
Christophe Dumez
20630e91ec Simplified addMagnetUri function 2010-12-01 19:05:26 +00:00
Christophe Dumez
cec74eb080 Updated Spanish and catalan translations 2010-12-01 16:12:14 +00:00
Christophe Dumez
4e51393dd2 Updated Portuguese and Brazilian translations 2010-11-30 19:08:24 +00:00
Christophe Dumez
5d86930c80 Fix qBtSession important initialization problem
Fix qBittorrent shutdown problem (closes #682576)
2010-11-29 16:55:23 +00:00
Christophe Dumez
cc1b812232 Updated Changelog 2010-11-28 21:13:24 +00:00
Christophe Dumez
0fcbcd0dcd Fix to advanced properties 2010-11-28 21:12:42 +00:00
Christophe Dumez
dd9e290a60 Fix compilation warning 2010-11-28 19:17:32 +00:00
Christophe Dumez
61a05c7e5b Bump to rc3 2010-11-28 14:47:24 +00:00
Christophe Dumez
1c27e2bd35 Updated Dutch translation
Updated Dutch translator name
2010-11-28 14:12:20 +00:00
Christophe Dumez
68f66579ea Updated Changelog 2010-11-28 12:28:42 +00:00
Christophe Dumez
e5eaea8949 Code clean up 2010-11-28 12:25:24 +00:00
Christophe Dumez
ed491cf7cb Updated Croatian and Czech translations 2010-11-28 12:01:51 +00:00
Christophe Dumez
3b3642bbba Initial support for libtorrent v0.16 (still a lot of deprecation warning but it compiles...) 2010-11-28 10:29:59 +00:00
Christophe Dumez
28eddb74ed Updated Hungarian translation, added some debug 2010-11-27 08:56:24 +00:00
Christophe Dumez
401693dccd Fix possible crash when loading columns visual indexes 2010-11-26 18:18:53 +00:00
Christophe Dumez
826e137aa5 Updated German and Traditional Chinese translation 2010-11-26 17:59:35 +00:00
Christophe Dumez
7d4805988e Updated Arabic translation 2010-11-25 19:41:27 +00:00
Christophe Dumez
bc2694bb88 Bump to rc2 2010-11-25 18:11:37 +00:00
Christophe Dumez
19db0d471f Signal / slot fixes 2010-11-24 20:31:14 +00:00
Christophe Dumez
2f337f9191 Updated Italian translation 2010-11-24 19:34:27 +00:00
Christophe Dumez
e05536a115 Fix Serbian flag 2010-11-24 19:26:11 +00:00
Christophe Dumez
7364815ef3 Bump to rc1 2010-11-23 18:28:11 +00:00
Christophe Dumez
bcc6597e93 Updated Serbian translation
Fixed Serbian flag
2010-11-22 22:31:09 +00:00
Christophe Dumez
661e2cb6fc Another compilation fix 2010-11-22 22:00:13 +00:00
Christophe Dumez
8a5dc1f239 Fix compilation on Windows (Remove using namespace libtorrent; from headers) 2010-11-22 21:55:32 +00:00
Christophe Dumez
61208fce13 Another compilation Fix for Windows 2010-11-22 21:11:43 +00:00
Christophe Dumez
71c4f6e7e3 Another compilation fix for Windows 2010-11-22 21:09:30 +00:00
Christophe Dumez
b169083fe2 Fix compilation errors on Windows 2010-11-22 20:27:57 +00:00
Christophe Dumez
efe5e7b068 Cleaned up QBtSession destructor code 2010-11-22 19:14:50 +00:00
Christophe Dumez
ee3d4ce8f1 Fix download from URL (Web UI) 2010-11-22 19:07:04 +00:00
Christophe Dumez
2707bf6349 FEATURE: Download first/last pieces first when sequential download is
enabled (Thanks Ahmad)
2010-11-22 18:43:52 +00:00
Christophe Dumez
a4b6228542 Updated Greek translation 2010-11-22 17:19:24 +00:00
Christophe Dumez
d49164b362 Other Socksipy fixes 2010-11-22 17:12:22 +00:00
Christophe Dumez
906b0755eb BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072) 2010-11-22 17:04:35 +00:00
Christophe Dumez
52f81a8066 Bump to beta7 2010-11-21 20:12:47 +00:00
Christophe Dumez
d8af5d681c Fix possible infinite loop in qBtSession constructor (when Web UI is enabled) 2010-11-21 19:46:06 +00:00
Christophe Dumez
d05c725253 Updated Ukrainian translation 2010-11-21 17:43:00 +00:00
Christophe Dumez
5fc3aa17b9 Fix HTTP redirect issue that would cause the torrent addition to show up for automated RSS downloads (Closes #677565) 2010-11-21 17:36:49 +00:00
Christophe Dumez
e15ac643de Bump to beta6 2010-11-21 13:12:58 +00:00
Christophe Dumez
0b9f9aa0d7 Fix compilation errors with libtorrent < 0.15.5 2010-11-21 09:58:24 +00:00
Christophe Dumez
549fcf8b4c Fix geoip detection (Thanks Mirco) 2010-11-21 09:49:56 +00:00
Christophe Dumez
19b11b8fa8 Updated Chinese translation 2010-11-20 21:14:54 +00:00
Christophe Dumez
ba83354f32 Updated French translation 2010-11-20 20:21:31 +00:00
Christophe Dumez
a63eecc86a Fix linux compilation 2010-11-20 18:51:31 +00:00
117 changed files with 17767 additions and 17268 deletions

View File

@@ -76,7 +76,7 @@ Translations authors:
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
- Czech: Jirka Vilim (web@tets.cz)
- Danish: Mathias Nielsen (comoneo@gmail.com)
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
- Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
- English: Christophe Dumez (chris@qbittorrent.org)
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
- French: Christophe Dumez (chris@qbittorrent.org)

View File

@@ -1,4 +1,4 @@
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
* Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
- FEATURE: qBittorrent can now act as a tracker
- FEATURE: New and improved RSS feed automated downloader
- FEATURE: Added feature to shutdown qbittorrent on torrents completion
@@ -12,9 +12,20 @@
- FEATURE: Added "Amount downloaded/left" columns to transfer list
- FEATURE: Simplified proxy settings
- FEATURE: Optimized and improved the peer country resolution code
- FEATURE: Download first/last pieces first when sequential download is
enabled (Thanks Ahmad)
- FEATURE: Download first/last pieces first now applies to all media files
in the torrent (Thanks Ahmad)
- BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072)
- BUGFIX: Fix two advanced settings (ignore limits on LAN and protocol
overhead inclusion in rate limiter)
- BUGFIX: Fix strict super seeding (was not working)
- BUGFIX: Improve magnet save path handling (closes #683395)
- BUGFIX: Disable overwrite confirmation in torrent addition dialog (closes # 685269)
- COSMETIC: Replaced message box by on-screen notification for download errors
- COSMETIC: Improved the torrent creation tool appearance
- COSMETIC: Use country flags by Mark James (Thanks to Dmytro Pukha)
- COSMETIC: Use bigger alternative speed icon
- OTHERS: Dropped support for Qt <= 4.4
* Tue Aug 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -68,7 +68,7 @@ class about : public QDialog, private Ui::AboutDlg{
<li><u>Croatian:</u> Oliver Mucafir (oliver.untwist@gmail.com)</li>\
<li><u>Czech:</u> Jirka Vilim (web@tets.cz)</li>\
<li><u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)</li>\
<li><u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net) and Peter Koeleman (peter@peerweb.nl)</li>\
<li><u>Dutch:</u> Pieter Heyvaert (pieter_heyvaert@hotmail.com)</li>\
<li><u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net) and Pekka Niemi (pekka.niemi@iki.fi)</li>\
<li><u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)</li>\
<li><u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)</li>\

View File

@@ -34,8 +34,6 @@
#include "qbtsession.h"
#include "ui_console.h"
using namespace libtorrent;
class consoleDlg : public QDialog, private Ui_ConsoleDlg{
Q_OBJECT

View File

@@ -1,57 +1,55 @@
<ui version="4.0" >
<author></author>
<comment></comment>
<exportmacro></exportmacro>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>downloadFromURL</class>
<widget class="QDialog" name="downloadFromURL" >
<property name="geometry" >
<widget class="QDialog" name="downloadFromURL">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>360</width>
<width>482</width>
<height>220</height>
</rect>
</property>
<property name="windowTitle" >
<property name="windowTitle">
<string>Download from urls</string>
</property>
<layout class="QVBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<number>9</number>
</property>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="icon_lbl" >
<property name="minimumSize" >
<widget class="QLabel" name="icon_lbl">
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="maximumSize" >
<property name="maximumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text" >
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="downloadURL_lbl" >
<property name="font" >
<widget class="QLabel" name="downloadURL_lbl">
<property name="font">
<font>
<family>Sans Serif</family>
<pointsize>12</pointsize>
@@ -62,7 +60,7 @@
<strikeout>false</strikeout>
</font>
</property>
<property name="text" >
<property name="text">
<string>Download Torrents from URLs</string>
</property>
</widget>
@@ -70,21 +68,21 @@
</layout>
</item>
<item>
<widget class="QTextEdit" name="textUrls" >
<property name="acceptRichText" >
<widget class="QTextEdit" name="textUrls">
<property name="acceptRichText">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_infos" >
<property name="maximumSize" >
<widget class="QLabel" name="label_infos">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>17</height>
</size>
</property>
<property name="font" >
<property name="font">
<font>
<family>Sans Serif</family>
<pointsize>9</pointsize>
@@ -95,25 +93,25 @@
<strikeout>false</strikeout>
</font>
</property>
<property name="text" >
<property name="text">
<string>Only one URL per line</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<spacer>
<property name="orientation" >
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" >
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -122,25 +120,25 @@
</spacer>
</item>
<item>
<widget class="QPushButton" name="downloadButton" >
<property name="text" >
<widget class="QPushButton" name="downloadButton">
<property name="text">
<string>Download</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelButton" >
<property name="text" >
<widget class="QPushButton" name="cancelButton">
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation" >
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" >
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -152,7 +150,6 @@
</item>
</layout>
</widget>
<pixmapfunction></pixmapfunction>
<resources/>
<connections/>
</ui>

View File

@@ -45,14 +45,14 @@
/** Download Thread **/
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
connect(&networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
connect(&m_networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
#ifndef QT_NO_OPENSSL
connect(&networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
connect(&m_networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
#endif
}
void downloadThread::processDlFinished(QNetworkReply* reply) {
QString url = reply->url().toEncoded().data();
QString url = reply->url().toString();
qDebug("Download finished: %s", qPrintable(url));
if(reply->error() != QNetworkReply::NoError) {
// Failure
@@ -63,13 +63,13 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
if(redirection.isValid()) {
// We should redirect
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
redirect_mapping.insert(redirection.toUrl().toString(), url);
m_redirectMapping.insert(redirection.toUrl().toString(), url);
downloadUrl(redirection.toUrl().toString());
return;
}
// Checking if it was redirecting, restoring initial URL
if(redirect_mapping.contains(url)) {
url = redirect_mapping.take(url);
if(m_redirectMapping.contains(url)) {
url = m_redirectMapping.take(url);
}
// Success
QString filePath;
@@ -104,7 +104,7 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
#ifndef DISABLE_GUI
void downloadThread::loadCookies(const QString &host_name, QString url) {
const QList<QByteArray> raw_cookies = RssSettings().getHostNameCookies(host_name);
QNetworkCookieJar *cookie_jar = networkManager.cookieJar();
QNetworkCookieJar *cookie_jar = m_networkManager.cookieJar();
QList<QNetworkCookie> cookies;
qDebug("Loading cookies for host name: %s", qPrintable(host_name));
foreach(const QByteArray& raw_cookie, raw_cookies) {
@@ -115,7 +115,7 @@ void downloadThread::loadCookies(const QString &host_name, QString url) {
}
}
cookie_jar->setCookiesFromUrl(cookies, url);
networkManager.setCookieJar(cookie_jar);
m_networkManager.setCookieJar(cookie_jar);
}
#endif
@@ -148,12 +148,12 @@ QNetworkReply* downloadThread::downloadUrl(QString url){
// Web server banning
request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5");
qDebug("Downloading %s...", request.url().toEncoded().data());
qDebug("%d cookies for this URL", networkManager.cookieJar()->cookiesForUrl(url).size());
for(int i=0; i<networkManager.cookieJar()->cookiesForUrl(url).size(); ++i) {
qDebug("%s=%s", networkManager.cookieJar()->cookiesForUrl(url).at(i).name().data(), networkManager.cookieJar()->cookiesForUrl(url).at(i).value().data());
qDebug("Domain: %s, Path: %s", qPrintable(networkManager.cookieJar()->cookiesForUrl(url).at(i).domain()), qPrintable(networkManager.cookieJar()->cookiesForUrl(url).at(i).path()));
qDebug("%d cookies for this URL", m_networkManager.cookieJar()->cookiesForUrl(url).size());
for(int i=0; i<m_networkManager.cookieJar()->cookiesForUrl(url).size(); ++i) {
qDebug("%s=%s", m_networkManager.cookieJar()->cookiesForUrl(url).at(i).name().data(), m_networkManager.cookieJar()->cookiesForUrl(url).at(i).value().data());
qDebug("Domain: %s, Path: %s", qPrintable(m_networkManager.cookieJar()->cookiesForUrl(url).at(i).domain()), qPrintable(m_networkManager.cookieJar()->cookiesForUrl(url).at(i).path()));
}
return networkManager.get(request);
return m_networkManager.get(request);
}
void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
@@ -200,7 +200,7 @@ void downloadThread::applyProxySettings() {
} else {
proxy.setType(QNetworkProxy::NoProxy);
}
networkManager.setProxy(proxy);
m_networkManager.setProxy(proxy);
}
QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {

View File

@@ -41,34 +41,34 @@ class QNetworkAccessManager;
class downloadThread : public QObject {
Q_OBJECT
private:
QNetworkAccessManager networkManager;
QHash<QString, QString> redirect_mapping;
public:
downloadThread(QObject* parent = 0);
QNetworkReply* downloadUrl(QString url);
void downloadTorrentUrl(QString url);
//void setProxy(QString IP, int port, QString username, QString password);
signals:
void downloadFinished(QString url, QString file_path);
void downloadFailure(QString url, QString reason);
public:
downloadThread(QObject* parent);
QNetworkReply* downloadUrl(QString url);
void downloadTorrentUrl(QString url);
//void setProxy(QString IP, int port, QString username, QString password);
protected:
QString errorCodeToString(QNetworkReply::NetworkError status);
void applyProxySettings();
#ifndef DISABLE_GUI
void loadCookies(const QString &host_name, QString url);
#endif
protected slots:
private slots:
void processDlFinished(QNetworkReply* reply);
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
#ifndef QT_NO_OPENSSL
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
#endif
private:
QString errorCodeToString(QNetworkReply::NetworkError status);
void applyProxySettings();
#ifndef DISABLE_GUI
void loadCookies(const QString &host_name, QString url);
#endif
private:
QNetworkAccessManager m_networkManager;
QHash<QString, QString> m_redirectMapping;
};
#endif

View File

@@ -40,7 +40,6 @@
#include <libtorrent/session.hpp>
#include <libtorrent/ip_filter.hpp>
using namespace libtorrent;
using namespace std;
// P2B Stuff
@@ -56,8 +55,8 @@ class FilterParserThread : public QThread {
Q_OBJECT
private:
session *s;
ip_filter filter;
libtorrent::session *s;
libtorrent::ip_filter filter;
bool abort;
QString filePath;
@@ -94,7 +93,7 @@ protected:
}
public:
FilterParserThread(QObject* parent, session *s) : QThread(parent), s(s), abort(false) {
FilterParserThread(QObject* parent, libtorrent::session *s) : QThread(parent), s(s), abort(false) {
}
@@ -177,7 +176,7 @@ public:
}
// Now Add to the filter
try {
filter.add_rule(startAddr, endAddr, ip_filter::blocked);
filter.add_rule(startAddr, endAddr, libtorrent::ip_filter::blocked);
}catch(exception){
qDebug("Bad line in filter file, avoided crash...");
}
@@ -246,7 +245,7 @@ public:
continue;
}
try {
filter.add_rule(startAddr, endAddr, ip_filter::blocked);
filter.add_rule(startAddr, endAddr, libtorrent::ip_filter::blocked);
} catch(std::exception&) {
qDebug("p2p file: line %d is malformed.", nbLine);
qDebug("Line was: %s", line.constData());
@@ -313,10 +312,10 @@ public:
// Network byte order to Host byte order
// asio address_v4 contructor expects it
// that way
address_v4 first(ntohl(start));
address_v4 last(ntohl(end));
libtorrent::address_v4 first(ntohl(start));
libtorrent::address_v4 last(ntohl(end));
// Apply to bittorrent session
filter.add_rule(first, last, ip_filter::blocked);
filter.add_rule(first, last, libtorrent::ip_filter::blocked);
}
}
else if(version==3) {
@@ -358,10 +357,10 @@ public:
// Network byte order to Host byte order
// asio address_v4 contructor expects it
// that way
address_v4 first(ntohl(start));
address_v4 last(ntohl(end));
libtorrent::address_v4 first(ntohl(start));
libtorrent::address_v4 last(ntohl(end));
// Apply to bittorrent session
filter.add_rule(first, last, ip_filter::blocked);
filter.add_rule(first, last, libtorrent::ip_filter::blocked);
if(abort) return;
}
} else {
@@ -391,16 +390,16 @@ public:
start();
}
static void processFilterList(session *s, QStringList IPs) {
static void processFilterList(libtorrent::session *s, QStringList IPs) {
// First, import current filter
ip_filter filter = s->get_ip_filter();
libtorrent::ip_filter filter = s->get_ip_filter();
foreach(const QString &ip, IPs) {
qDebug("Manual ban of peer %s", ip.toLocal8Bit().constData());
boost::system::error_code ec;
address_v4 addr = address_v4::from_string(ip.toLocal8Bit().constData(), ec);
libtorrent::address_v4 addr = libtorrent::address_v4::from_string(ip.toLocal8Bit().constData(), ec);
Q_ASSERT(!ec);
if(!ec)
filter.add_rule(addr, addr, ip_filter::blocked);
filter.add_rule(addr, addr, libtorrent::ip_filter::blocked);
}
s->set_ip_filter(filter);
}

View File

@@ -7,7 +7,7 @@ SOURCES += $$PWD/geoipmanager.cpp
# Add GeoIP resource file if the GeoIP database
# should be embedded in qBittorrent executable
contains(DEFINES, WITH_GEOIP_EMBEDDED) {
exists("geoip/GeoIP.dat") {
exists("GeoIP.dat") {
message("GeoIP.dat was found in src/geoip/.")
RESOURCES += $$PWD/geoip.qrc
} else {

View File

@@ -118,9 +118,7 @@ void GeoIPManager::loadDatabase(session *s) {
#endif
if(QFile::exists(geoipDBpath(false))) {
qDebug("Loading GeoIP database from %s...", qPrintable(geoipDBpath(false)));
if(!s->load_country_db(geoipDBpath(false).toLocal8Bit().constData())) {
std::cerr << "Failed to load Geoip Database at " << qPrintable(geoipDBpath(false)) << std::endl;
}
s->load_country_db(geoipDBpath(false).toLocal8Bit().constData());
} else {
qDebug("ERROR: Impossible to find local Geoip Database");
}

View File

@@ -40,15 +40,14 @@ class HeadlessLoader: public QObject {
Q_OBJECT
public:
HeadlessLoader(QStringList torrentCmdLine) {
HeadlessLoader(const QStringList &torrentCmdLine) {
Preferences pref;
// Enable Web UI
pref.setWebUiEnabled(true);
// Instanciate Bittorrent Object
BTSession = QBtSession::instance();
connect(BTSession, SIGNAL(newConsoleMessage(QString)), this, SLOT(displayConsoleMessage(QString)));
connect(QBtSession::instance(), SIGNAL(newConsoleMessage(QString)), this, SLOT(displayConsoleMessage(QString)));
// Resume unfinished torrents
BTSession->startUpTorrents();
QBtSession::instance()->startUpTorrents();
// Process command line parameters
processParams(torrentCmdLine);
// Display some information to the user
@@ -72,7 +71,7 @@ public slots:
qApp->quit();
}
void displayConsoleMessage(QString msg) {
void displayConsoleMessage(const QString &msg) {
std::cout << qPrintable(msg) << std::endl;
}
@@ -88,24 +87,21 @@ public slots:
foreach(QString param, params) {
param = param.trimmed();
if(param.startsWith(QString::fromUtf8("http://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("ftp://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("https://"), Qt::CaseInsensitive)) {
BTSession->downloadFromUrl(param);
QBtSession::instance()->downloadFromUrl(param);
}else{
if(param.startsWith("bc://bt/", Qt::CaseInsensitive)) {
qDebug("Converting bc link to magnet link");
param = misc::bcLinkToMagnet(param);
}
if(param.startsWith("magnet:", Qt::CaseInsensitive)) {
BTSession->addMagnetUri(param);
QBtSession::instance()->addMagnetUri(param);
} else {
BTSession->addTorrent(param);
QBtSession::instance()->addTorrent(param);
}
}
}
}
private:
QBtSession *BTSession;
};
#endif

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More