Fix Qt4 build.

This commit is contained in:
sledgehammer999 2017-05-30 21:10:47 +03:00
commit d92ef3fa4d
No known key found for this signature in database
GPG key ID: 6E4A2D025B7CC9A2
4 changed files with 38 additions and 16 deletions

View file

@ -32,6 +32,9 @@
#include "connection.h"
#include <QRegExp>
#ifndef QBT_USES_QT5
#include <QStringList>
#endif
#include <QTcpSocket>
#include "irequesthandler.h"
@ -107,7 +110,7 @@ bool Connection::acceptsGzipEncoding(QString codings)
const auto isCodingAvailable = [](const QStringList &list, const QString &encoding) -> bool
{
foreach (const QString &str, list) {
for (const QString &str: list) {
if (!str.startsWith(encoding))
continue;
@ -116,7 +119,11 @@ bool Connection::acceptsGzipEncoding(QString codings)
return true;
// [rfc7231] 5.3.1. Quality Values
#ifdef QBT_USES_QT5
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;
const double qvalue = substr.toDouble(&ok);

View file

@ -32,6 +32,9 @@
#include "responsegenerator.h"
#include <QDateTime>
#ifndef QBT_USES_QT5
#include <QLocale>
#endif
#include "base/utils/gzip.h"

View file

@ -62,7 +62,7 @@ Server::Server(IRequestHandler *requestHandler, QObject *parent)
#endif
QTimer *dropConnectionTimer = new QTimer(this);
connect(dropConnectionTimer, &QTimer::timeout, this, &Server::dropTimedOutConnection);
connect(dropConnectionTimer, SIGNAL(timeout()), SLOT(dropTimedOutConnection()));
dropConnectionTimer->start(CONNECTIONS_SCAN_INTERVAL * 1000);
}
@ -70,7 +70,11 @@ Server::~Server()
{
}
#ifdef QBT_USES_QT5
void Server::incomingConnection(qintptr socketDescriptor)
#else
void Server::incomingConnection(int socketDescriptor)
#endif
{
if (m_connections.size() >= CONNECTIONS_LIMIT) return;
@ -91,7 +95,11 @@ void Server::incomingConnection(qintptr socketDescriptor)
if (m_https) {
static_cast<QSslSocket *>(serverSocket)->setProtocol(QSsl::SecureProtocols);
static_cast<QSslSocket *>(serverSocket)->setPrivateKey(m_key);
#ifdef QBT_USES_QT5
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)->startServerEncryption();
}
@ -118,7 +126,14 @@ bool Server::setupHttps(const QByteArray &certificates, const QByteArray &key)
{
QSslKey sslKey(key, QSsl::Rsa);
if (sslKey.isNull())
#ifdef QBT_USES_QT5
sslKey = QSslKey(key, QSsl::Ec);
#else
{
disableHttps();
return false;
}
#endif
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(); });
@ -143,14 +158,6 @@ void Server::disableHttps()
m_certificates.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
{

View file

@ -255,10 +255,6 @@ void AbstractWebApplication::translateDocument(QString& data)
translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1);
#else
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
}
// Remove keyboard shortcuts
@ -397,16 +393,25 @@ QStringMap AbstractWebApplication::parseCookie(const Http::Request &request) con
// [rfc6265] 4.2.1. Syntax
QStringMap ret;
const QString cookieStr = request.headers.value(QLatin1String("cookie"));
#ifdef QBT_USES_QT5
const QVector<QStringRef> cookies = cookieStr.splitRef(';', QString::SkipEmptyParts);
#else
const QStringList cookies = cookieStr.split(';', QString::SkipEmptyParts);
#endif
for (const auto &cookie : cookies) {
const int idx = cookie.indexOf('=');
if (idx < 0)
continue;
#ifdef QBT_USES_QT5
const QString name = cookie.left(idx).trimmed().toString();
const QString value = Utils::String::unquote(cookie.mid(idx + 1).trimmed())
.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);
}
return ret;