summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergio Ahumada <sahumada@blackberry.com>2014-02-14 21:43:32 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-16 10:18:11 +0100
commit5b8172c5ae60a2247b1a390e7262e756115a1dc1 (patch)
tree7732d754d688b550a543f345a69f0f9837200412 /src
parent9d604432b5ff6fbdd2cd6ee44c91ea80ff858939 (diff)
downloadqtwebsockets-5b8172c5ae60a2247b1a390e7262e756115a1dc1.tar.gz
Rename websockets.pro -> qtwebsockets.pro
Change-Id: Ia42316304a37d151b678a9922071bbb090ec87b5 Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/websockets/qwebsocketserver.cpp8
-rw-r--r--src/websockets/qwebsocketserver_p.cpp9
-rw-r--r--src/websockets/qwebsocketserver_p.h1
3 files changed, 11 insertions, 7 deletions
diff --git a/src/websockets/qwebsocketserver.cpp b/src/websockets/qwebsocketserver.cpp
index 2c6d677..0645947 100644
--- a/src/websockets/qwebsocketserver.cpp
+++ b/src/websockets/qwebsocketserver.cpp
@@ -495,10 +495,10 @@ quint16 QWebSocketServer::serverPort() const
nextPendingConnection() is called.
By default, the limit is 30 pending connections.
- Clients may still able to connect after the server has reached its maximum number of
- pending connections (i.e., QWebSocketServer can still emit the connected() signal).
- QWebSocketServer will stop accepting the new connections, but the operating system may still
- keep them in queue.
+ QWebSocketServer will emit the error() signal with
+ the QWebSocketProtocol::CloseCodeAbnormalDisconnection close code
+ when the maximum of connections has been reached.
+ The websocket handshake will fail and the socket will be closed.
\sa maxPendingConnections(), hasPendingConnections()
*/
diff --git a/src/websockets/qwebsocketserver_p.cpp b/src/websockets/qwebsocketserver_p.cpp
index 061fb3f..a43e75a 100644
--- a/src/websockets/qwebsocketserver_p.cpp
+++ b/src/websockets/qwebsocketserver_p.cpp
@@ -70,7 +70,8 @@ QWebSocketServerPrivate::QWebSocketServerPrivate(const QString &serverName,
m_secureMode(secureMode),
m_pendingConnections(),
m_error(QWebSocketProtocol::CloseCodeNormal),
- m_errorString()
+ m_errorString(),
+ m_maxPendingConnections(30)
{
Q_ASSERT(pWebSocketServer);
}
@@ -178,7 +179,7 @@ bool QWebSocketServerPrivate::listen(const QHostAddress &address, quint16 port)
*/
int QWebSocketServerPrivate::maxPendingConnections() const
{
- return m_pTcpServer->maxPendingConnections();
+ return m_maxPendingConnections;
}
/*!
@@ -273,7 +274,9 @@ quint16 QWebSocketServerPrivate::serverPort() const
*/
void QWebSocketServerPrivate::setMaxPendingConnections(int numConnections)
{
- m_pTcpServer->setMaxPendingConnections(numConnections);
+ if (m_pTcpServer->maxPendingConnections() <= numConnections)
+ m_pTcpServer->setMaxPendingConnections(numConnections + 1);
+ m_maxPendingConnections = numConnections;
}
/*!
diff --git a/src/websockets/qwebsocketserver_p.h b/src/websockets/qwebsocketserver_p.h
index 617f35c..cc37df6 100644
--- a/src/websockets/qwebsocketserver_p.h
+++ b/src/websockets/qwebsocketserver_p.h
@@ -131,6 +131,7 @@ private:
QQueue<QWebSocket *> m_pendingConnections;
QWebSocketProtocol::CloseCode m_error;
QString m_errorString;
+ int m_maxPendingConnections;
void addPendingConnection(QWebSocket *pWebSocket);
void setErrorFromSocketError(QAbstractSocket::SocketError error,