diff options
author | Liang Qi <liang.qi@qt.io> | 2017-01-25 11:03:47 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-01-25 11:03:47 +0100 |
commit | dfc91928f15302fa4e6c41802c60caec2c124942 (patch) | |
tree | 7c32786f83a45d9d8de8d989e9d54dcc0982d4e5 /src/websockets/qwebsocketserver_p.cpp | |
parent | a0aec91b676e2b79b8e66091d55d9e128bf2a1d0 (diff) | |
parent | 670266a075c7c312c6a7f9465298bfec0b968ee2 (diff) | |
download | qtwebsockets-dfc91928f15302fa4e6c41802c60caec2c124942.tar.gz |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
.qmake.conf
Change-Id: If50b73b1f1e293269404bd8b38088119a0f59f1f
Diffstat (limited to 'src/websockets/qwebsocketserver_p.cpp')
-rw-r--r-- | src/websockets/qwebsocketserver_p.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/websockets/qwebsocketserver_p.cpp b/src/websockets/qwebsocketserver_p.cpp index 91bfafc..d675056 100644 --- a/src/websockets/qwebsocketserver_p.cpp +++ b/src/websockets/qwebsocketserver_p.cpp @@ -392,18 +392,20 @@ void QWebSocketServerPrivate::onNewConnection() QObjectPrivate::connect(pTcpSocket, &QTcpSocket::readyRead, this, &QWebSocketServerPrivate::handshakeReceived, Qt::QueuedConnection); + QObjectPrivate::connect(pTcpSocket, &QTcpSocket::disconnected, + this, &QWebSocketServerPrivate::onSocketDisconnected); } } /*! \internal */ -void QWebSocketServerPrivate::onCloseConnection() +void QWebSocketServerPrivate::onSocketDisconnected() { if (Q_LIKELY(currentSender)) { QTcpSocket *pTcpSocket = qobject_cast<QTcpSocket*>(currentSender->sender); if (Q_LIKELY(pTcpSocket)) - pTcpSocket->close(); + pTcpSocket->deleteLater(); } } @@ -433,7 +435,7 @@ void QWebSocketServerPrivate::handshakeReceived() this, &QWebSocketServerPrivate::handshakeReceived); Q_Q(QWebSocketServer); bool success = false; - bool isSecure = false; + bool isSecure = (m_secureMode == SecureMode); if (m_pendingConnections.length() >= maxPendingConnections()) { pTcpSocket->close(); |