diff options
author | Luca Niccoli <lultimouomo@gmail.com> | 2015-04-02 07:28:20 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-08 08:46:04 +0000 |
commit | ba3b71327577f3ea348e9511c1475cf48f821880 (patch) | |
tree | 823caec3379843d8f4b564fe6eed37b5b0204a45 /src/websockets/qwebsocket_p.cpp | |
parent | 01eaae540cace513fa73340631dbb3a854c713b5 (diff) | |
download | qtwebsockets-ba3b71327577f3ea348e9511c1475cf48f821880.tar.gz |
Add open(const QNetworkRequest &) and request()
Request headers are not yet handled, only the QNetworkRequest::url() is
taken into consideration.
[ChangeLog][QWebSocket] Added open(const QNetworkRequest &) and request()
Task-number: QTBUG-40842
Change-Id: Ia2e10f22c79b0a085afb9a2eb8437b7a73d4a045
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Diffstat (limited to 'src/websockets/qwebsocket_p.cpp')
-rw-r--r-- | src/websockets/qwebsocket_p.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index 2bb5151..ab466bd 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -88,7 +88,7 @@ QWebSocketPrivate::QWebSocketPrivate(const QString &origin, QWebSocketProtocol:: m_errorString(), m_version(version), m_resourceName(), - m_requestUrl(), + m_request(), m_origin(origin), m_protocol(), m_extension(), @@ -120,7 +120,7 @@ QWebSocketPrivate::QWebSocketPrivate(QTcpSocket *pTcpSocket, QWebSocketProtocol: m_errorString(pTcpSocket->errorString()), m_version(version), m_resourceName(), - m_requestUrl(), + m_request(), m_origin(), m_protocol(), m_extension(), @@ -280,9 +280,10 @@ QWebSocket *QWebSocketPrivate::upgradeFrom(QTcpSocket *pTcpSocket, { QWebSocket *pWebSocket = new QWebSocket(pTcpSocket, response.acceptedVersion(), parent); if (Q_LIKELY(pWebSocket)) { + QNetworkRequest netRequest(request.requestUrl()); pWebSocket->d_func()->setExtension(response.acceptedExtension()); pWebSocket->d_func()->setOrigin(request.origin()); - pWebSocket->d_func()->setRequestUrl(request.requestUrl()); + pWebSocket->d_func()->setRequest(netRequest); pWebSocket->d_func()->setProtocol(response.acceptedProtocol()); pWebSocket->d_func()->setResourceName(request.requestUrl().toString(QUrl::RemoveUserInfo)); //a server should not send masked frames @@ -329,12 +330,13 @@ void QWebSocketPrivate::close(QWebSocketProtocol::CloseCode closeCode, QString r /*! \internal */ -void QWebSocketPrivate::open(const QUrl &url, bool mask) +void QWebSocketPrivate::open(const QNetworkRequest &request, bool mask) { //just delete the old socket for the moment; //later, we can add more 'intelligent' handling by looking at the URL //m_pSocket.reset(); Q_Q(QWebSocket); + QUrl url = request.url(); if (!url.isValid() || url.toString().contains(QStringLiteral("\r\n"))) { setErrorString(QWebSocket::tr("Invalid URL.")); Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); @@ -351,10 +353,10 @@ void QWebSocketPrivate::open(const QUrl &url, bool mask) m_isClosingHandshakeReceived = false; m_isClosingHandshakeSent = false; - setRequestUrl(url); + setRequest(request); QString resourceName = url.path(); if (resourceName.contains(QStringLiteral("\r\n"))) { - setRequestUrl(QUrl()); //clear requestUrl + setRequest(QNetworkRequest()); //clear request setErrorString(QWebSocket::tr("Invalid resource name.")); Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); return; @@ -477,10 +479,10 @@ void QWebSocketPrivate::setResourceName(const QString &resourceName) /*! \internal */ -void QWebSocketPrivate::setRequestUrl(const QUrl &requestUrl) +void QWebSocketPrivate::setRequest(const QNetworkRequest &request) { - if (m_requestUrl != requestUrl) - m_requestUrl = requestUrl; + if (m_request != request) + m_request = request; } /*! @@ -614,9 +616,9 @@ QString QWebSocketPrivate::resourceName() const /*! \internal */ -QUrl QWebSocketPrivate::requestUrl() const +QNetworkRequest QWebSocketPrivate::request() const { - return m_requestUrl; + return m_request; } /*! @@ -1038,9 +1040,9 @@ void QWebSocketPrivate::processStateChanged(QAbstractSocket::SocketState socketS m_key = generateKey(); const QString handshake = createHandShakeRequest(m_resourceName, - m_requestUrl.host() + m_request.url().host() % QStringLiteral(":") - % QString::number(m_requestUrl.port(80)), + % QString::number(m_request.url().port(80)), origin(), QString(), QString(), |