mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-21 13:53:37 -07:00
Fix Qt4 build.
This commit is contained in:
parent
89d4cb257f
commit
d92ef3fa4d
4 changed files with 38 additions and 16 deletions
|
@ -32,6 +32,9 @@
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
|
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
|
#ifndef QBT_USES_QT5
|
||||||
|
#include <QStringList>
|
||||||
|
#endif
|
||||||
#include <QTcpSocket>
|
#include <QTcpSocket>
|
||||||
|
|
||||||
#include "irequesthandler.h"
|
#include "irequesthandler.h"
|
||||||
|
@ -107,7 +110,7 @@ bool Connection::acceptsGzipEncoding(QString codings)
|
||||||
|
|
||||||
const auto isCodingAvailable = [](const QStringList &list, const QString &encoding) -> bool
|
const auto isCodingAvailable = [](const QStringList &list, const QString &encoding) -> bool
|
||||||
{
|
{
|
||||||
foreach (const QString &str, list) {
|
for (const QString &str: list) {
|
||||||
if (!str.startsWith(encoding))
|
if (!str.startsWith(encoding))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -116,7 +119,11 @@ bool Connection::acceptsGzipEncoding(QString codings)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// [rfc7231] 5.3.1. Quality Values
|
// [rfc7231] 5.3.1. Quality Values
|
||||||
|
#ifdef QBT_USES_QT5
|
||||||
const QStringRef substr = str.midRef(encoding.size() + 3); // ex. skip over "gzip;q="
|
const QStringRef substr = str.midRef(encoding.size() + 3); // ex. skip over "gzip;q="
|
||||||
|
#else
|
||||||
|
const QString substr = str.mid(encoding.size() + 3); // ex. skip over "gzip;q="
|
||||||
|
#endif
|
||||||
|
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
const double qvalue = substr.toDouble(&ok);
|
const double qvalue = substr.toDouble(&ok);
|
||||||
|
|
|
@ -32,6 +32,9 @@
|
||||||
#include "responsegenerator.h"
|
#include "responsegenerator.h"
|
||||||
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
#ifndef QBT_USES_QT5
|
||||||
|
#include <QLocale>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "base/utils/gzip.h"
|
#include "base/utils/gzip.h"
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ Server::Server(IRequestHandler *requestHandler, QObject *parent)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QTimer *dropConnectionTimer = new QTimer(this);
|
QTimer *dropConnectionTimer = new QTimer(this);
|
||||||
connect(dropConnectionTimer, &QTimer::timeout, this, &Server::dropTimedOutConnection);
|
connect(dropConnectionTimer, SIGNAL(timeout()), SLOT(dropTimedOutConnection()));
|
||||||
dropConnectionTimer->start(CONNECTIONS_SCAN_INTERVAL * 1000);
|
dropConnectionTimer->start(CONNECTIONS_SCAN_INTERVAL * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,11 @@ Server::~Server()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef QBT_USES_QT5
|
||||||
void Server::incomingConnection(qintptr socketDescriptor)
|
void Server::incomingConnection(qintptr socketDescriptor)
|
||||||
|
#else
|
||||||
|
void Server::incomingConnection(int socketDescriptor)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (m_connections.size() >= CONNECTIONS_LIMIT) return;
|
if (m_connections.size() >= CONNECTIONS_LIMIT) return;
|
||||||
|
|
||||||
|
@ -91,7 +95,11 @@ void Server::incomingConnection(qintptr socketDescriptor)
|
||||||
if (m_https) {
|
if (m_https) {
|
||||||
static_cast<QSslSocket *>(serverSocket)->setProtocol(QSsl::SecureProtocols);
|
static_cast<QSslSocket *>(serverSocket)->setProtocol(QSsl::SecureProtocols);
|
||||||
static_cast<QSslSocket *>(serverSocket)->setPrivateKey(m_key);
|
static_cast<QSslSocket *>(serverSocket)->setPrivateKey(m_key);
|
||||||
|
#ifdef QBT_USES_QT5
|
||||||
static_cast<QSslSocket *>(serverSocket)->setLocalCertificateChain(m_certificates);
|
static_cast<QSslSocket *>(serverSocket)->setLocalCertificateChain(m_certificates);
|
||||||
|
#else
|
||||||
|
static_cast<QSslSocket *>(serverSocket)->setLocalCertificate(m_certificates.first());
|
||||||
|
#endif
|
||||||
static_cast<QSslSocket *>(serverSocket)->setPeerVerifyMode(QSslSocket::VerifyNone);
|
static_cast<QSslSocket *>(serverSocket)->setPeerVerifyMode(QSslSocket::VerifyNone);
|
||||||
static_cast<QSslSocket *>(serverSocket)->startServerEncryption();
|
static_cast<QSslSocket *>(serverSocket)->startServerEncryption();
|
||||||
}
|
}
|
||||||
|
@ -118,7 +126,14 @@ bool Server::setupHttps(const QByteArray &certificates, const QByteArray &key)
|
||||||
{
|
{
|
||||||
QSslKey sslKey(key, QSsl::Rsa);
|
QSslKey sslKey(key, QSsl::Rsa);
|
||||||
if (sslKey.isNull())
|
if (sslKey.isNull())
|
||||||
|
#ifdef QBT_USES_QT5
|
||||||
sslKey = QSslKey(key, QSsl::Ec);
|
sslKey = QSslKey(key, QSsl::Ec);
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
disableHttps();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
const QList<QSslCertificate> certs = QSslCertificate::fromData(certificates);
|
const QList<QSslCertificate> certs = QSslCertificate::fromData(certificates);
|
||||||
const bool areCertsValid = !certs.empty() && std::all_of(certs.begin(), certs.end(), [](const QSslCertificate &c) { return !c.isNull(); });
|
const bool areCertsValid = !certs.empty() && std::all_of(certs.begin(), certs.end(), [](const QSslCertificate &c) { return !c.isNull(); });
|
||||||
|
@ -143,14 +158,6 @@ void Server::disableHttps()
|
||||||
m_certificates.clear();
|
m_certificates.clear();
|
||||||
m_key.clear();
|
m_key.clear();
|
||||||
}
|
}
|
||||||
#ifdef QBT_USES_QT5
|
|
||||||
#else
|
|
||||||
void Server::incomingConnection(int socketDescriptor)
|
|
||||||
#endif
|
|
||||||
#ifdef QBT_USES_QT5
|
|
||||||
#else
|
|
||||||
static_cast<QSslSocket *>(serverSocket)->setLocalCertificate(m_certificates.first());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QList<QSslCipher> Server::safeCipherList() const
|
QList<QSslCipher> Server::safeCipherList() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -252,13 +252,9 @@ void AbstractWebApplication::translateDocument(QString& data)
|
||||||
if (isTranslationNeeded) {
|
if (isTranslationNeeded) {
|
||||||
QString context = regex.cap(4);
|
QString context = regex.cap(4);
|
||||||
#ifndef QBT_USES_QT5
|
#ifndef QBT_USES_QT5
|
||||||
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1);
|
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1);
|
||||||
#else
|
#else
|
||||||
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, 1);
|
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, 1);
|
||||||
#endif
|
|
||||||
#ifndef QBT_USES_QT5
|
|
||||||
translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1);
|
|
||||||
#else
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// Remove keyboard shortcuts
|
// Remove keyboard shortcuts
|
||||||
|
@ -397,16 +393,25 @@ QStringMap AbstractWebApplication::parseCookie(const Http::Request &request) con
|
||||||
// [rfc6265] 4.2.1. Syntax
|
// [rfc6265] 4.2.1. Syntax
|
||||||
QStringMap ret;
|
QStringMap ret;
|
||||||
const QString cookieStr = request.headers.value(QLatin1String("cookie"));
|
const QString cookieStr = request.headers.value(QLatin1String("cookie"));
|
||||||
|
#ifdef QBT_USES_QT5
|
||||||
const QVector<QStringRef> cookies = cookieStr.splitRef(';', QString::SkipEmptyParts);
|
const QVector<QStringRef> cookies = cookieStr.splitRef(';', QString::SkipEmptyParts);
|
||||||
|
#else
|
||||||
|
const QStringList cookies = cookieStr.split(';', QString::SkipEmptyParts);
|
||||||
|
#endif
|
||||||
|
|
||||||
for (const auto &cookie : cookies) {
|
for (const auto &cookie : cookies) {
|
||||||
const int idx = cookie.indexOf('=');
|
const int idx = cookie.indexOf('=');
|
||||||
if (idx < 0)
|
if (idx < 0)
|
||||||
continue;
|
continue;
|
||||||
|
#ifdef QBT_USES_QT5
|
||||||
const QString name = cookie.left(idx).trimmed().toString();
|
const QString name = cookie.left(idx).trimmed().toString();
|
||||||
const QString value = Utils::String::unquote(cookie.mid(idx + 1).trimmed())
|
const QString value = Utils::String::unquote(cookie.mid(idx + 1).trimmed())
|
||||||
.toString();
|
.toString();
|
||||||
|
#else
|
||||||
|
const QString name = cookie.left(idx).trimmed();
|
||||||
|
const QString value = Utils::String::unquote(cookie.mid(idx + 1).trimmed());
|
||||||
|
#endif
|
||||||
|
|
||||||
ret.insert(name, value);
|
ret.insert(name, value);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue