diff --git a/src/base/http/server.cpp b/src/base/http/server.cpp index 5b144e308..35be36d98 100644 --- a/src/base/http/server.cpp +++ b/src/base/http/server.cpp @@ -60,6 +60,33 @@ Server::~Server() { } +void Server::incomingConnection(qintptr socketDescriptor) +{ + QTcpSocket *serverSocket; +#ifndef QT_NO_OPENSSL + if (m_https) + serverSocket = new QSslSocket(this); + else +#endif + serverSocket = new QTcpSocket(this); + + if (serverSocket->setSocketDescriptor(socketDescriptor)) { +#ifndef QT_NO_OPENSSL + if (m_https) { + static_cast(serverSocket)->setProtocol(QSsl::SecureProtocols); + static_cast(serverSocket)->setPrivateKey(m_key); + static_cast(serverSocket)->setLocalCertificateChain(m_certificates); + static_cast(serverSocket)->setPeerVerifyMode(QSslSocket::VerifyNone); + static_cast(serverSocket)->startServerEncryption(); + } +#endif + new Connection(serverSocket, m_requestHandler, this); + } + else { + serverSocket->deleteLater(); + } +} + #ifndef QT_NO_OPENSSL bool Server::setupHttps(const QByteArray &certificates, const QByteArray &key) { @@ -90,36 +117,7 @@ void Server::disableHttps() m_certificates.clear(); m_key.clear(); } -#endif -void Server::incomingConnection(qintptr socketDescriptor) -{ - QTcpSocket *serverSocket; -#ifndef QT_NO_OPENSSL - if (m_https) - serverSocket = new QSslSocket(this); - else -#endif - serverSocket = new QTcpSocket(this); - - if (serverSocket->setSocketDescriptor(socketDescriptor)) { -#ifndef QT_NO_OPENSSL - if (m_https) { - static_cast(serverSocket)->setProtocol(QSsl::SecureProtocols); - static_cast(serverSocket)->setPrivateKey(m_key); - static_cast(serverSocket)->setLocalCertificateChain(m_certificates); - static_cast(serverSocket)->setPeerVerifyMode(QSslSocket::VerifyNone); - static_cast(serverSocket)->startServerEncryption(); - } -#endif - new Connection(serverSocket, m_requestHandler, this); - } - else { - serverSocket->deleteLater(); - } -} - -#ifndef QT_NO_OPENSSL QList Server::safeCipherList() const { const QStringList badCiphers = {"idea", "rc4"}; diff --git a/src/base/http/server.h b/src/base/http/server.h index 3ffb329cd..31f33b735 100644 --- a/src/base/http/server.h +++ b/src/base/http/server.h @@ -34,6 +34,7 @@ #define HTTP_SERVER_H #include + #ifndef QT_NO_OPENSSL #include #include @@ -60,12 +61,13 @@ namespace Http #endif private: - IRequestHandler *m_requestHandler; - void incomingConnection(qintptr socketDescriptor); + IRequestHandler *m_requestHandler; + #ifndef QT_NO_OPENSSL QList safeCipherList() const; + bool m_https; QList m_certificates; QSslKey m_key;