Browse Source

- Can spoof Azureus peer id and user agent to avoid ban

adaptive-webui-19844
Christophe Dumez 17 years ago
parent
commit
56d80118b7
  1. 5
      Changelog
  2. 4
      src/GUI.cpp
  3. 7
      src/bittorrent.cpp
  4. 7
      src/options.ui
  5. 7
      src/options_imp.cpp
  6. 1
      src/options_imp.h

5
Changelog

@ -1,5 +1,6 @@
* Tuesday October 06 2007 - Christophe Dumez <chris@qbittorrent.org> - v1.1.0 * Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.1.0
- FEATURE: Web interface to control qbittorrent (Ishan Arora) - FEATURE: Web interface to control qbittorrent (Ishan Arora)
- FEATURE: Can spoof Azureus peer id to avoid ban
- FEATURE: Allow to hide/show some columns in download and seeding lists - FEATURE: Allow to hide/show some columns in download and seeding lists
- FEATURE: Option to start qBittorrent minimized in systray - FEATURE: Option to start qBittorrent minimized in systray
- FEATURE: Allow to define double-click actions in torrents lists - FEATURE: Allow to define double-click actions in torrents lists
@ -19,7 +20,7 @@
- COSMETIC: Display tracker errors in a cleaner way - COSMETIC: Display tracker errors in a cleaner way
- COSMETIC: Display "unpaused/total_torrent" in download/upload tabs - COSMETIC: Display "unpaused/total_torrent" in download/upload tabs
* Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.0.0 * Fri Apr 11 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.0.0
- FEATURE: Based on new libtorrent v0.13 - FEATURE: Based on new libtorrent v0.13
- FEATURE: Added UPnP / NAT-PMP port forwarding support - FEATURE: Added UPnP / NAT-PMP port forwarding support
- FEATURE: Added encryption support (compatible with Azureus) - FEATURE: Added encryption support (compatible with Azureus)

4
src/GUI.cpp

@ -940,7 +940,11 @@ void GUI::configureSession(bool deleteOptions) {
BTSession->setProxySettings(proxySettings, options->useProxyForTrackers(), options->useProxyForPeers(), options->useProxyForWebseeds(), options->useProxyForDHT()); BTSession->setProxySettings(proxySettings, options->useProxyForTrackers(), options->useProxyForPeers(), options->useProxyForWebseeds(), options->useProxyForDHT());
// * Session settings // * Session settings
session_settings sessionSettings; session_settings sessionSettings;
if(options->shouldSpoofAzureus()) {
sessionSettings.user_agent = "Azureus 3.0.5.2";
} else {
sessionSettings.user_agent = "qBittorrent "VERSION; sessionSettings.user_agent = "qBittorrent "VERSION;
}
BTSession->setSessionSettings(sessionSettings); BTSession->setSessionSettings(sessionSettings);
// Bittorrent // Bittorrent
// * Max connections limit // * Max connections limit

7
src/bittorrent.cpp

@ -23,6 +23,7 @@
#include <QTime> #include <QTime>
#include <QString> #include <QString>
#include <QTimer> #include <QTimer>
#include <QSettings>
#include "bittorrent.h" #include "bittorrent.h"
#include "misc.h" #include "misc.h"
@ -46,7 +47,13 @@ bittorrent::bittorrent() : timerScan(0), DHTEnabled(false), preAllocateAll(false
// To avoid some exceptions // To avoid some exceptions
fs::path::default_name_check(fs::no_check); fs::path::default_name_check(fs::no_check);
// Creating bittorrent session // Creating bittorrent session
// Check if we should spoof azureus
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
if(settings.value(QString::fromUtf8("AzureusSpoof"), false).toBool()) {
s = new session(fingerprint("AZ", 3, 0, 5, 2));
} else {
s = new session(fingerprint("qB", VERSION_MAJOR, VERSION_MINOR, VERSION_BUGFIX, 0)); s = new session(fingerprint("qB", VERSION_MAJOR, VERSION_MINOR, VERSION_BUGFIX, 0));
}
// Set severity level of libtorrent session // Set severity level of libtorrent session
s->set_severity_level(alert::info); s->set_severity_level(alert::info);
// Enabling metadata plugin // Enabling metadata plugin

7
src/options.ui

@ -1361,6 +1361,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="checkAzureusSpoof" >
<property name="text" >
<string>Spoof Azureus to avoid ban (requires restart)</string>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" > <layout class="QHBoxLayout" >
<item> <item>

7
src/options_imp.cpp

@ -194,6 +194,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
connect(checkDHT, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(checkDHT, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton()));
connect(checkPeX, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(checkPeX, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton()));
connect(checkLSD, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(checkLSD, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton()));
connect(checkAzureusSpoof, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton()));
connect(comboEncryption, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton())); connect(comboEncryption, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton()));
connect(checkRatioLimit, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(checkRatioLimit, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton()));
connect(checkRatioRemove, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(checkRatioRemove, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton()));
@ -322,6 +323,7 @@ void options_imp::saveOptions(){
settings.setValue(QString::fromUtf8("DHT"), isDHTEnabled()); settings.setValue(QString::fromUtf8("DHT"), isDHTEnabled());
settings.setValue(QString::fromUtf8("PeX"), isPeXEnabled()); settings.setValue(QString::fromUtf8("PeX"), isPeXEnabled());
settings.setValue(QString::fromUtf8("LSD"), isLSDEnabled()); settings.setValue(QString::fromUtf8("LSD"), isLSDEnabled());
settings.setValue(QString::fromUtf8("AzureusSpoof"), shouldSpoofAzureus());
settings.setValue(QString::fromUtf8("Encryption"), getEncryptionSetting()); settings.setValue(QString::fromUtf8("Encryption"), getEncryptionSetting());
settings.setValue(QString::fromUtf8("DesiredRatio"), getDesiredRatio()); settings.setValue(QString::fromUtf8("DesiredRatio"), getDesiredRatio());
settings.setValue(QString::fromUtf8("MaxRatio"), getDeleteRatio()); settings.setValue(QString::fromUtf8("MaxRatio"), getDeleteRatio());
@ -357,6 +359,10 @@ void options_imp::saveOptions(){
settings.endGroup(); settings.endGroup();
} }
bool options_imp::shouldSpoofAzureus() const {
return checkAzureusSpoof->isChecked();
}
bool options_imp::isFilteringEnabled() const{ bool options_imp::isFilteringEnabled() const{
return checkIPFilter->isChecked(); return checkIPFilter->isChecked();
} }
@ -561,6 +567,7 @@ void options_imp::loadOptions(){
checkDHT->setChecked(settings.value(QString::fromUtf8("DHT"), true).toBool()); checkDHT->setChecked(settings.value(QString::fromUtf8("DHT"), true).toBool());
checkPeX->setChecked(settings.value(QString::fromUtf8("PeX"), true).toBool()); checkPeX->setChecked(settings.value(QString::fromUtf8("PeX"), true).toBool());
checkLSD->setChecked(settings.value(QString::fromUtf8("LSD"), true).toBool()); checkLSD->setChecked(settings.value(QString::fromUtf8("LSD"), true).toBool());
checkAzureusSpoof->setChecked(settings.value(QString::fromUtf8("AzureusSpoof"), false).toBool());
comboEncryption->setCurrentIndex(settings.value(QString::fromUtf8("Encryption"), 0).toInt()); comboEncryption->setCurrentIndex(settings.value(QString::fromUtf8("Encryption"), 0).toInt());
floatValue = settings.value(QString::fromUtf8("DesiredRatio"), -1).toDouble(); floatValue = settings.value(QString::fromUtf8("DesiredRatio"), -1).toDouble();
if(floatValue >= 1.) { if(floatValue >= 1.) {

1
src/options_imp.h

@ -99,6 +99,7 @@ class options_imp : public QDialog, private Ui::Dialog {
bool isDHTEnabled() const; bool isDHTEnabled() const;
bool isPeXEnabled() const; bool isPeXEnabled() const;
bool isLSDEnabled() const; bool isLSDEnabled() const;
bool shouldSpoofAzureus() const;
int getEncryptionSetting() const; int getEncryptionSetting() const;
float getDesiredRatio() const; float getDesiredRatio() const;
float getDeleteRatio() const; float getDeleteRatio() const;

Loading…
Cancel
Save