Remove dependence on QtNetworkPrivate from QSslServer

Locally I was unable to build QSslServer due to
QAbstractSocketEnginePrivate not being exported.

Change-Id: I739b63d03d2ff378e03ef3fcd7b1ab55db24f63b
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@kdab.com>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@gmail.com>
This commit is contained in:
Mårten Nordheim 2020-02-06 10:29:34 +01:00
parent 10ca6d493a
commit bf9bb2acb6
4 changed files with 11 additions and 10 deletions

View File

@ -36,21 +36,21 @@ QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcSS, "qt.sslserver"); Q_LOGGING_CATEGORY(lcSS, "qt.sslserver");
QSslServer::QSslServer(QObject *parent): QSslServer::QSslServer(QObject *parent):
QTcpServer (QAbstractSocket::TcpSocket, *new QSslServerPrivate, parent) QTcpServer (parent), d(new QSslServerPrivate)
{ {
} }
QSslServer::QSslServer(const QSslConfiguration &sslConfiguration, QSslServer::QSslServer(const QSslConfiguration &sslConfiguration,
QObject *parent): QObject *parent):
QTcpServer (QAbstractSocket::TcpSocket, *new QSslServerPrivate, parent) QTcpServer (parent), d(new QSslServerPrivate)
{ {
Q_D(QSslServer);
d->sslConfiguration = sslConfiguration; d->sslConfiguration = sslConfiguration;
} }
QSslServer::~QSslServer() = default;
void QSslServer::incomingConnection(qintptr handle) void QSslServer::incomingConnection(qintptr handle)
{ {
Q_D(QSslServer);
QSslSocket *socket = new QSslSocket(this); QSslSocket *socket = new QSslSocket(this);
connect(socket, QOverload<const QList<QSslError>&>::of(&QSslSocket::sslErrors), connect(socket, QOverload<const QList<QSslError>&>::of(&QSslSocket::sslErrors),
[this, socket](const QList<QSslError> &errors) { [this, socket](const QList<QSslError> &errors) {
@ -67,7 +67,6 @@ void QSslServer::incomingConnection(qintptr handle)
void QSslServer::setSslConfiguration(const QSslConfiguration &sslConfiguration) void QSslServer::setSslConfiguration(const QSslConfiguration &sslConfiguration)
{ {
Q_D(QSslServer);
d->sslConfiguration = sslConfiguration; d->sslConfiguration = sslConfiguration;
} }
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -35,6 +35,8 @@
#include <QtNetwork/qtcpserver.h> #include <QtNetwork/qtcpserver.h>
#include <QtNetwork/qsslconfiguration.h> #include <QtNetwork/qsslconfiguration.h>
#include <QtCore/qscopedpointer.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QSslServerPrivate; class QSslServerPrivate;
@ -44,6 +46,7 @@ class Q_SSLSERVER_EXPORT QSslServer : public QTcpServer
public: public:
QSslServer(QObject *parent = nullptr); QSslServer(QObject *parent = nullptr);
QSslServer(const QSslConfiguration &sslConfiguration, QObject *parent = nullptr); QSslServer(const QSslConfiguration &sslConfiguration, QObject *parent = nullptr);
~QSslServer();
void setSslConfiguration(const QSslConfiguration &sslConfiguration); void setSslConfiguration(const QSslConfiguration &sslConfiguration);
@ -54,7 +57,7 @@ protected:
void incomingConnection(qintptr handle) override final; void incomingConnection(qintptr handle) override final;
private: private:
Q_DECLARE_PRIVATE(QSslServer) QScopedPointer<QSslServerPrivate> d;
}; };
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -32,11 +32,10 @@
#include <QtSslServer/qsslserver.h> #include <QtSslServer/qsslserver.h>
#include <private/qtcpserver_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QSslServerPrivate: public QTcpServerPrivate { class QSslServerPrivate
{
public: public:
QSslConfiguration sslConfiguration; QSslConfiguration sslConfiguration;
}; };

View File

@ -1,7 +1,7 @@
TARGET = QtSslServer TARGET = QtSslServer
INCLUDEPATH += . INCLUDEPATH += .
QT = network network-private core-private QT = network core
HEADERS += \ HEADERS += \
qsslserver.h \ qsslserver.h \