const QWebSocketHandshakeResponse &response,
QObject *parent)
{
- QWebSocket *pWebSocket = new QWebSocket(pTcpSocket, response.getAcceptedVersion(), parent);
- pWebSocket->d_func()->setExtension(response.getAcceptedExtension());
+ QWebSocket *pWebSocket = new QWebSocket(pTcpSocket, response.acceptedVersion(), parent);
+ pWebSocket->d_func()->setExtension(response.acceptedExtension());
pWebSocket->d_func()->setOrigin(request.origin());
pWebSocket->d_func()->setRequestUrl(request.requestUrl());
- pWebSocket->d_func()->setProtocol(response.getAcceptedProtocol());
+ pWebSocket->d_func()->setProtocol(response.acceptedProtocol());
pWebSocket->d_func()->setResourceName(request.requestUrl().toString(QUrl::RemoveUserInfo));
//a server should not send masked frames
pWebSocket->d_func()->enableMasking(false);
/*!
\internal
*/
-QString QWebSocketHandshakeResponse::getAcceptedProtocol() const
+QString QWebSocketHandshakeResponse::acceptedProtocol() const
{
return m_acceptedProtocol;
}
/*!
\internal
*/
-QWebSocketProtocol::Version QWebSocketHandshakeResponse::getAcceptedVersion() const
+QWebSocketProtocol::Version QWebSocketHandshakeResponse::acceptedVersion() const
{
return m_acceptedVersion;
}
/*!
\internal
*/
-QString QWebSocketHandshakeResponse::getAcceptedExtension() const
+QString QWebSocketHandshakeResponse::acceptedExtension() const
{
return m_acceptedExtension;
}
{
bool success = false;
bool isSecure = false;
+
+ disconnect(pTcpSocket, SIGNAL(readyRead()), this, SLOT(handshakeReceived()));
+
QWebSocketHandshakeRequest request(pTcpSocket->peerPort(), isSecure);
QTextStream textStream(pTcpSocket);
textStream >> request;
- QWebSocketCorsAuthenticator corsAuthenticator(request.origin());
- Q_EMIT q->originAuthenticationRequired(&corsAuthenticator);
-
- QWebSocketHandshakeResponse response(request,
- m_serverName,
- corsAuthenticator.allowed(),
- supportedVersions(),
- supportedProtocols(),
- supportedExtensions());
- disconnect(pTcpSocket, SIGNAL(readyRead()), this, SLOT(handshakeReceived()));
-
- if (response.isValid())
+ if (request.isValid())
{
- QTextStream httpStream(pTcpSocket);
- httpStream << response;
- httpStream.flush();
+ QWebSocketCorsAuthenticator corsAuthenticator(request.origin());
+ Q_EMIT q->originAuthenticationRequired(&corsAuthenticator);
- if (response.canUpgrade())
+ QWebSocketHandshakeResponse response(request,
+ m_serverName,
+ corsAuthenticator.allowed(),
+ supportedVersions(),
+ supportedProtocols(),
+ supportedExtensions());
+
+ if (response.isValid())
{
- QWebSocket *pWebSocket = QWebSocketPrivate::upgradeFrom(pTcpSocket, request, response);
- if (pWebSocket)
+ QTextStream httpStream(pTcpSocket);
+ httpStream << response;
+ httpStream.flush();
+
+ if (response.canUpgrade())
{
- pWebSocket->setParent(this);
- addPendingConnection(pWebSocket);
- Q_EMIT q->newConnection();
- success = true;
+ QWebSocket *pWebSocket = QWebSocketPrivate::upgradeFrom(pTcpSocket, request, response);
+ if (pWebSocket)
+ {
+ pWebSocket->setParent(this);
+ addPendingConnection(pWebSocket);
+ Q_EMIT q->newConnection();
+ success = true;
+ }
+ else
+ {
+ //TODO: should set or emit error
+ qDebug() << tr("Upgrading to websocket failed.");
+ }
}
else
{
//TODO: should set or emit error
- qDebug() << tr("Upgrading to websocket failed.");
+ qDebug() << tr("Cannot upgrade to websocket.");
}
}
else
{
//TODO: should set or emit error
- qDebug() << tr("Cannot upgrade to websocket.");
+ qDebug() << tr("Invalid response received.");
}
}
- else
- {
- //TODO: should set or emit error
- qDebug() << tr("Invalid response received.");
- }
if (!success)
{
//TODO: should set or emit error