From c11e5e8b12ad500590b73b6418ef92f324d115f3 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Wed, 4 Jul 2007 06:42:36 +0000 Subject: [PATCH] - Blocked users (by ipfilter) are now logged in GUI --- Changelog | 1 + src/GUI.cpp | 17 ++++++++++++++++- src/GUI.h | 1 + src/bittorrent.cpp | 3 +++ src/bittorrent.h | 1 + src/options_imp.cpp | 13 ++++--------- src/src.pro | 2 +- 7 files changed, 27 insertions(+), 11 deletions(-) diff --git a/Changelog b/Changelog index 89d064230..d228fac59 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,7 @@ - FEATURE: Supports SOCKS5 proxies as well as HTTP ones - FEATURE: Better systems integration (buttons, dialogs...) - FEATURE: Filtered files are not allocated on the hard-drive anymore (if FS is compatible) + - FEATURE: IPs blocked by filter are now logged in GUI - FEATURE: Added a way to link against static libtorrent (useful for deb packages) - BUGFIX: Progress of paused torrents is now correct on restart - BUGFIX: Progress column gets sorted on restart it is was during last execution diff --git a/src/GUI.cpp b/src/GUI.cpp index 59a82abd6..cf66e88c8 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -112,7 +112,8 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){ actionDelete_Permanently->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete_perm.png"))); actionTorrent_Properties->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/properties.png"))); actionCreate_torrent->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/new.png"))); - tabBottom->setTabIcon(0, QIcon(QString::fromUtf8(":/Icons/log.png"))); +// tabBottom->setTabIcon(0, QIcon(QString::fromUtf8(":/Icons/log.png"))); +// tabBottom->setTabIcon(1, QIcon(QString::fromUtf8(":/Icons/filter.png"))); tabs->setTabIcon(0, QIcon(QString::fromUtf8(":/Icons/skin/downloading.png"))); // Set default ratio lbl_ratio_icon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/stare.png"))); @@ -143,6 +144,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){ connect(&BTSession, SIGNAL(trackerError(const QString&, const QString&, const QString&)), this, SLOT(trackerError(const QString&, const QString&, const QString&))); connect(&BTSession,SIGNAL(allTorrentsFinishedChecking()), this, SLOT(sortProgressColumnDelayed())); connect(&BTSession, SIGNAL(trackerAuthenticationRequired(torrent_handle&)), this, SLOT(trackerAuthenticationRequired(torrent_handle&))); + connect(&BTSession, SIGNAL(peerBlocked(const QString&)), this, SLOT(addLogPeerBlocked(const QString))); connect(&BTSession, SIGNAL(scanDirFoundTorrents(const QStringList&)), this, SLOT(processScannedFiles(const QStringList&))); connect(&BTSession, SIGNAL(newDownloadedTorrent(const QString&, const QString&)), this, SLOT(processDownloadedFiles(const QString&, const QString&))); connect(&BTSession, SIGNAL(aboutToDownloadFromUrl(const QString&)), this, SLOT(displayDownloadingUrlInfos(const QString&))); @@ -242,6 +244,16 @@ void GUI::readSettings() { settings.endGroup(); } +void GUI::addLogPeerBlocked(const QString& ip){ + static unsigned short nbLines = 0; + ++nbLines; + if(nbLines > 200){ + textBlockedUsers->clear(); + nbLines = 1; + } + infoBar->append(""+ QTime::currentTime().toString("hh:mm:ss") + " - "+tr("%1 was blocked").arg(ip)); +} + // Update Info Bar information void GUI::setInfoBar(const QString& info, const QString& color){ qDebug("setInfoBar called"); @@ -1256,8 +1268,11 @@ void GUI::configureSession(bool deleteOptions){ // Apply filtering settings if(options->isFilteringEnabled()){ BTSession.enableIPFilter(options->getFilter()); + tabBottom->setTabEnabled(1, true); }else{ BTSession.disableIPFilter(); + tabBottom->setCurrentIndex(0); + tabBottom->setTabEnabled(1, false); } // Apply Proxy settings if(options->isProxyEnabled()){ diff --git a/src/GUI.h b/src/GUI.h index 6fa0110a0..80cef8d1c 100644 --- a/src/GUI.h +++ b/src/GUI.h @@ -129,6 +129,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{ void readSettings(); void on_actionExit_triggered(); void createTrayIcon(); + void addLogPeerBlocked(const QString&); // Torrent actions size_type torrentEffectiveSize(QString hash) const; void showProperties(const QModelIndex &index); diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index b3b04cfed..6f22fd1a1 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -716,6 +716,9 @@ void bittorrent::readAlerts(){ emit trackerAuthenticationRequired(p->handle); } } + else if (peer_blocked_alert* p = dynamic_cast(a.get())){ + emit peerBlocked(QString(p->ip.to_string().c_str())); + } a = s->pop_alert(); } } diff --git a/src/bittorrent.h b/src/bittorrent.h index 354a4cdb9..3888dfc6c 100644 --- a/src/bittorrent.h +++ b/src/bittorrent.h @@ -144,6 +144,7 @@ class bittorrent : public QObject{ void aboutToDownloadFromUrl(const QString& url); void updateFileSize(QString hash); void allTorrentsFinishedChecking(); + void peerBlocked(const QString&); }; diff --git a/src/options_imp.cpp b/src/options_imp.cpp index 4d2b84e70..ba98de27c 100644 --- a/src/options_imp.cpp +++ b/src/options_imp.cpp @@ -516,15 +516,10 @@ void options_imp::loadOptions(){ settings.beginGroup("IPFilter"); if(settings.value("Enabled", false).toBool()){ strValue = settings.value("File", QString()).toString(); - if(strValue.isEmpty()){ - activateFilter->setChecked(false); - filterGroup->setEnabled(false); - }else{ - activateFilter->setChecked(true); - filterGroup->setEnabled(true); - filterFile->setText(strValue); - processFilterFile(strValue); - } + activateFilter->setChecked(true); + filterGroup->setEnabled(true); + filterFile->setText(strValue); + processFilterFile(strValue); }else{ activateFilter->setChecked(false); filterGroup->setEnabled(false); diff --git a/src/src.pro b/src/src.pro index f2f73545b..53f00b98d 100644 --- a/src/src.pro +++ b/src/src.pro @@ -11,7 +11,7 @@ TARGET = qbittorrent CONFIG += qt thread x11 network # Update this VERSION for each release -DEFINES += VERSION=\\\"v1.0.0alpha10\\\" +DEFINES += VERSION=\\\"v1.0.0alpha11\\\" DEFINES += VERSION_MAJOR=1 DEFINES += VERSION_MINOR=0 DEFINES += VERSION_BUGFIX=0