diff options
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(); |