Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-websockets for openSUSE:Factory 
checked in at 2026-05-28 17:25:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-websockets (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-websockets.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-websockets"

Thu May 28 17:25:29 2026 rev:35 rq:1355450 version:6.11.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-websockets/qt6-websockets.changes    
2026-03-28 20:13:53.290752944 +0100
+++ /work/SRC/openSUSE:Factory/.qt6-websockets.new.1937/qt6-websockets.changes  
2026-05-28 17:26:38.130964825 +0200
@@ -1,0 +2,6 @@
+Thu May 14 14:56:43 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.11.1
+  https://www.qt.io/blog/qt-6.11.1-released
+
+-------------------------------------------------------------------

Old:
----
  qtwebsockets-everywhere-src-6.11.0.tar.xz

New:
----
  qtwebsockets-everywhere-src-6.11.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-websockets.spec ++++++
--- /var/tmp/diff_new_pack.YUDTIY/_old  2026-05-28 17:26:39.019001584 +0200
+++ /var/tmp/diff_new_pack.YUDTIY/_new  2026-05-28 17:26:39.019001584 +0200
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.11.0
+%define real_version 6.11.1
 %define short_version 6.11
 %define tar_name qtwebsockets-everywhere-src
 %define tar_suffix %{nil}
@@ -27,7 +27,7 @@
 %endif
 #
 Name:           qt6-websockets%{?pkg_suffix}
-Version:        6.11.0
+Version:        6.11.1
 Release:        0
 Summary:        Qt 6 WebSockets library
 License:        GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only

++++++ qtwebsockets-everywhere-src-6.11.0.tar.xz -> 
qtwebsockets-everywhere-src-6.11.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebsockets-everywhere-src-6.11.0/.cmake.conf 
new/qtwebsockets-everywhere-src-6.11.1/.cmake.conf
--- old/qtwebsockets-everywhere-src-6.11.0/.cmake.conf  2026-03-10 
06:07:38.000000000 +0100
+++ new/qtwebsockets-everywhere-src-6.11.1/.cmake.conf  2026-05-08 
03:18:55.000000000 +0200
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.11.0")
+set(QT_REPO_MODULE_VERSION "6.11.1")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES
     "QT_NO_CONTEXTLESS_CONNECT=1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebsockets-everywhere-src-6.11.0/.tag 
new/qtwebsockets-everywhere-src-6.11.1/.tag
--- old/qtwebsockets-everywhere-src-6.11.0/.tag 2026-03-10 06:07:38.000000000 
+0100
+++ new/qtwebsockets-everywhere-src-6.11.1/.tag 2026-05-08 03:18:55.000000000 
+0200
@@ -1 +1 @@
-882f182c8bb5d249ecd97601557ab0e671bdf520
+451920600d7f0b8a4b458bba56a2dd303e587026
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebsockets-everywhere-src-6.11.0/dependencies.yaml 
new/qtwebsockets-everywhere-src-6.11.1/dependencies.yaml
--- old/qtwebsockets-everywhere-src-6.11.0/dependencies.yaml    2026-03-10 
06:07:38.000000000 +0100
+++ new/qtwebsockets-everywhere-src-6.11.1/dependencies.yaml    2026-05-08 
03:18:55.000000000 +0200
@@ -1,7 +1,7 @@
 dependencies:
   ../qtbase:
-    ref: 8ba7ea4b77a4b8f1948760221e264917ddc9e1c8
+    ref: 59c81a3c2247b821b9b84b4eb8d939b77e07e276
     required: true
   ../qtdeclarative:
-    ref: e602a097ca314e9610b1fd3b7dbfa467a868731a
+    ref: a02bed441965ee1f18f856352c7d5ee5ba35d795
     required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.11.0/src/websockets/qwebsocket_p.cpp 
new/qtwebsockets-everywhere-src-6.11.1/src/websockets/qwebsocket_p.cpp
--- old/qtwebsockets-everywhere-src-6.11.0/src/websockets/qwebsocket_p.cpp      
2026-03-10 06:07:38.000000000 +0100
+++ new/qtwebsockets-everywhere-src-6.11.1/src/websockets/qwebsocket_p.cpp      
2026-05-08 03:18:55.000000000 +0200
@@ -510,6 +510,10 @@
                     setSocketState(QAbstractSocket::ConnectingState);
 
                     
sslSocket->setSslConfiguration(m_configuration.m_sslConfiguration);
+
+                    if (!request.peerVerifyName().isEmpty())
+                        sslSocket->setPeerVerifyName(request.peerVerifyName());
+
                     if (Q_UNLIKELY(m_configuration.m_ignoreSslErrors))
                         sslSocket->ignoreSslErrors();
                     else
@@ -1239,11 +1243,16 @@
             m_key = generateKey();
 
             QList<QPair<QString, QString> > headers;
+            QString hostHeaderOverride;
             const auto h = m_request.headers();
             for (qsizetype i = 0; i < h.size(); ++i) {
                 const auto name = h.nameAt(i);
                 const auto value = h.valueAt(i);
 
+                if (name.compare("Host", Qt::CaseInsensitive) == 0) {
+                    hostHeaderOverride = QString::fromLatin1(value);
+                    continue;
+                }
                 // protocols handled separately below
                 if (name.compare("Sec-WebSocket-Protocol", 
Qt::CaseInsensitive) == 0)
                     continue;
@@ -1277,7 +1286,9 @@
                                 | QUrl::RemovePath | QUrl::RemoveQuery
                                 | QUrl::RemoveFragment;
             // mid(2) removes the prefix "//" from the remaining url
-            const QString host = 
removeZoneId(m_request.url().toString(format).mid(2));
+            const QString host = hostHeaderOverride.isEmpty()
+                    ? removeZoneId(m_request.url().toString(format).mid(2))
+                    : hostHeaderOverride;
             const QString handshake = createHandShakeRequest(m_resourceName,
                                                              host,
                                                              origin(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.11.0/src/websockets/qwebsocketserver_p.cpp 
new/qtwebsockets-everywhere-src-6.11.1/src/websockets/qwebsocketserver_p.cpp
--- 
old/qtwebsockets-everywhere-src-6.11.0/src/websockets/qwebsocketserver_p.cpp    
    2026-03-10 06:07:38.000000000 +0100
+++ 
new/qtwebsockets-everywhere-src-6.11.1/src/websockets/qwebsocketserver_p.cpp    
    2026-05-08 03:18:55.000000000 +0200
@@ -405,7 +405,6 @@
     while (m_pTcpServer->hasPendingConnections()) {
         QTcpSocket *pTcpSocket = m_pTcpServer->nextPendingConnection();
         Q_ASSERT(pTcpSocket);
-        startHandshakeTimeout(pTcpSocket);
         handleConnection(pTcpSocket);
     }
 }
@@ -539,6 +538,8 @@
 void QWebSocketServerPrivate::handleConnection(QTcpSocket *pTcpSocket) const
 {
     if (Q_LIKELY(pTcpSocket)) {
+        startHandshakeTimeout(pTcpSocket);
+
         // Use a queued connection because a QSslSocket needs the event loop 
to process incoming
         // data. If not queued, data is incomplete when handshakeReceived is 
called.
         QObjectPrivate::connect(pTcpSocket, &QTcpSocket::readyRead,
@@ -556,7 +557,7 @@
     }
 }
 
-void QWebSocketServerPrivate::startHandshakeTimeout(QTcpSocket *pTcpSocket)
+void QWebSocketServerPrivate::startHandshakeTimeout(QTcpSocket *pTcpSocket) 
const
 {
     if (m_handshakeTimeout < 0)
         return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.11.0/src/websockets/qwebsocketserver_p.h 
new/qtwebsockets-everywhere-src-6.11.1/src/websockets/qwebsocketserver_p.h
--- old/qtwebsockets-everywhere-src-6.11.0/src/websockets/qwebsocketserver_p.h  
2026-03-10 06:07:38.000000000 +0100
+++ new/qtwebsockets-everywhere-src-6.11.1/src/websockets/qwebsocketserver_p.h  
2026-05-08 03:18:55.000000000 +0200
@@ -93,7 +93,7 @@
     void handleConnection(QTcpSocket *pTcpSocket) const;
 
 private slots:
-    void startHandshakeTimeout(QTcpSocket *pTcpSocket);
+    void startHandshakeTimeout(QTcpSocket *pTcpSocket) const;
 
 private:
     QTcpServer *m_pTcpServer;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.11.0/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
 
new/qtwebsockets-everywhere-src-6.11.1/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
--- 
old/qtwebsockets-everywhere-src-6.11.0/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
  2026-03-10 06:07:38.000000000 +0100
+++ 
new/qtwebsockets-everywhere-src-6.11.1/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
  2026-05-08 03:18:55.000000000 +0200
@@ -163,6 +163,7 @@
     void incomingMessageTooLong();
     void incomingFrameTooLong();
     void testingFrameAndMessageSizeApi();
+    void hostHeaderFromNetworkRequest();
     void customHeader();
     void splitUtf8Sequence();
 };
@@ -295,6 +296,12 @@
     QFETCH(QAbstractSocket::SocketState, stateAfterOpenCall);
     QFETCH(int, disconnectedCount);
     QFETCH(int, stateChangedCount);
+#if defined(__QNX__) && __QNX__ >= 800
+    if (url == QStringLiteral("ws://127.0.0.1:1/"))
+        QSKIP("QNX 8.0 rejects loopback connects to non-listening ports "
+              "synchronously, bypassing the ConnectingState transient the "
+              "test expects to observe.");
+#endif
     QWebSocket socket;
     QSignalSpy errorSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError)));
     QSignalSpy aboutToCloseSpy(&socket, SIGNAL(aboutToClose()));
@@ -363,6 +370,11 @@
 
 void tst_QWebSocket::tst_invalidOrigin()
 {
+#if defined(__QNX__) && __QNX__ >= 800
+    QSKIP("QNX 8.0 rejects loopback connects to non-listening ports "
+          "synchronously, bypassing the ConnectingState transient the "
+          "test expects to observe.");
+#endif
     QWebSocket socket(QStringLiteral("My server\r\nin the wild."));
 
     QSignalSpy errorSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError)));
@@ -1429,6 +1441,54 @@
     QTRY_COMPARE(maxAllowedIncomingMessageSize, 
socket.maxAllowedIncomingMessageSize());
 }
 
+void tst_QWebSocket::hostHeaderFromNetworkRequest()
+{
+    QTcpServer server;
+    QSignalSpy serverSpy(&server, &QTcpServer::newConnection);
+
+    QVERIFY(server.listen(QHostAddress(u"127.0.0.1"_s)));
+
+    QUrl url = QUrl(u"ws://127.0.0.1"_s);
+    url.setPort(server.serverPort());
+    QNetworkRequest request(url);
+    request.setRawHeader("Host", "localhost");
+
+    QWebSocket socket;
+    socket.open(request);
+
+    QVERIFY(serverSpy.wait());
+    std::unique_ptr<QTcpSocket> serverSocket;
+    serverSocket.reset(server.nextPendingConnection());
+    QSignalSpy serverSocketSpy(serverSocket.get(), &QIODevice::readyRead);
+    QByteArray data;
+    while (!data.contains("\r\n\r\n")) {
+        QVERIFY(serverSocketSpy.wait());
+        data.append(serverSocket->readAll());
+    }
+
+    const auto headerEndIndex = data.indexOf("\r\n\r\n");
+    QCOMPARE_NE(headerEndIndex, -1);
+    const auto headerView = 
QLatin1StringView(QByteArrayView(data).first(headerEndIndex + 2));
+    QCOMPARE(headerView.count("Host: "_L1, Qt::CaseInsensitive), 1);
+    QVERIFY(headerView.contains("\r\nHost: localhost\r\n"_L1, 
Qt::CaseInsensitive));
+
+    const QLatin1StringView keyView =
+            AuthServer::getHeaderValue("Sec-WebSocket-Key"_L1, 
QByteArrayView(data));
+    QVERIFY(!keyView.isEmpty());
+    const QByteArray accept =
+            QByteArrayView(keyView) % 
"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"_ba;
+    serverSocket->write(
+            "HTTP/1.1 101 Switching Protocols\r\n"
+            "Upgrade: websocket\r\n"
+            "Connection: Upgrade\r\n"
+            "Sec-WebSocket-Accept: "
+            % QCryptographicHash::hash(accept, 
QCryptographicHash::Sha1).toBase64()
+            % "\r\n\r\n");
+
+    QSignalSpy connectedSpy(&socket, &QWebSocket::connected);
+    QVERIFY(connectedSpy.wait());
+}
+
 void tst_QWebSocket::customHeader()
 {
     QTcpServer server;

Reply via email to