summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLander Noterman <lander.noterman@gmail.com>2019-11-15 14:21:37 +0100
committerMårten Nordheim <marten.nordheim@qt.io>2019-11-21 20:32:21 +0000
commit26983aef39a702d2de7c519b5a3f7a8150c8beeb (patch)
tree860a2ee4f9f02beb86704b9161751f1b6cca85bd
parent5b34b19b0a37624a3f5846a949112929ef5feeeb (diff)
downloadqtwebsockets-26983aef39a702d2de7c519b5a3f7a8150c8beeb.tar.gz
Don't add port in Host header unless specified
No longer add port to Host header in WebSocket handshake unless it was explicitly specified in the URL. This change fixes issues with some WebSocket servers rejecting the connection if the Host header does not match the URL. Fixes: QTBUG-77526 Change-Id: I9b028ce434416e61cae7b217d2eafe621d2660b4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
-rw-r--r--src/websockets/qwebsocket_p.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index 36aefd9..bca4ccd 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -1099,9 +1099,6 @@ void QWebSocketPrivate::processStateChanged(QAbstractSocket::SocketState socketS
Q_ASSERT(m_pSocket);
Q_Q(QWebSocket);
QAbstractSocket::SocketState webSocketState = this->state();
- int port = 80;
- if (m_request.url().scheme() == QStringLiteral("wss"))
- port = 443;
switch (socketState) {
case QAbstractSocket::ConnectedState:
@@ -1120,11 +1117,10 @@ void QWebSocketPrivate::processStateChanged(QAbstractSocket::SocketState socketS
const auto format = QUrl::RemoveScheme | QUrl::RemoveUserInfo
| QUrl::RemovePath | QUrl::RemoveQuery
- | QUrl::RemoveFragment | QUrl::RemovePort;
+ | QUrl::RemoveFragment;
const QString host = m_request.url().toString(format).mid(2);
const QString handshake = createHandShakeRequest(m_resourceName,
- host % QStringLiteral(":")
- % QString::number(m_request.url().port(port)),
+ host,
origin(),
QString(),
QString(),