Browse Source

Randomize the listening port only on startup.

adaptive-webui-19844
sledgehammer999 10 years ago
parent
commit
153f3328f3
  1. 5
      src/core/preferences.cpp
  2. 1
      src/core/preferences.h
  3. 3
      src/core/qtlibtorrent/qbtsession.cpp

5
src/core/preferences.cpp

@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
Preferences* Preferences::m_instance = 0;
Preferences::Preferences() : dirty(false), lock(QReadWriteLock::Recursive) {
Preferences::Preferences() : m_randomPort(rand() % 64512 + 1024), dirty(false), lock(QReadWriteLock::Recursive) {
QIniSettings *settings = new QIniSettings;
#ifndef Q_OS_MAC
QIniSettings *settings_new = new QIniSettings("qBittorrent", "qBittorrent_new");
@ -537,6 +537,9 @@ void Preferences::setActionOnDblClOnTorrentFn(int act) { @@ -537,6 +537,9 @@ void Preferences::setActionOnDblClOnTorrentFn(int act) {
// Connection options
int Preferences::getSessionPort() const {
QReadLocker locker(&lock);
if (useRandomPort())
return m_randomPort;
return value("Preferences/Connection/PortRangeMin", 6881).toInt();
}

1
src/core/preferences.h

@ -63,6 +63,7 @@ private: @@ -63,6 +63,7 @@ private:
explicit Preferences();
static Preferences* m_instance;
QHash<QString, QVariant> m_data;
int m_randomPort;
bool dirty;
QTimer timer;
mutable QReadWriteLock lock;

3
src/core/qtlibtorrent/qbtsession.cpp

@ -309,9 +309,6 @@ void QBtSession::setQueueingEnabled(bool enable) { @@ -309,9 +309,6 @@ void QBtSession::setQueueingEnabled(bool enable) {
void QBtSession::configureSession() {
qDebug("Configuring session");
Preferences* const pref = Preferences::instance();
if (pref->useRandomPort()) {
pref->setSessionPort(rand() % USHRT_MAX + 1025);
}
const unsigned short old_listenPort = getListenPort();
const unsigned short new_listenPort = pref->getSessionPort();

Loading…
Cancel
Save