summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Use QElapsedTimer instead of QTime for the ping timerFriedemann Kleint2019-08-232-2/+4
| | | | | | | | | The use of QTime for determining intervals is deprecated: qwebsocket_p.cpp:1214:61: warning: ‘int QTime::elapsed() const’ is deprecated: Use QElapsedTimer instead [-Wdeprecated-declarations] Change-Id: I26e1dabcba5ba54a4fead02b43c3fe7ace740be0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Prospective fix for compilation with WebAssembly/MinGW73Friedemann Kleint2019-08-221-3/+6
| | | | | | | | | | Pass a template argument to std::less/greater. Amends 54ffd0d0a3bf2c77d53e1cdfe04b362f59682cb4. Fixes: QTBUG-77500 Change-Id: I0b78906090d8b0e3c910104975c08ff79ba9fc12 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-161-0/+1
|\ | | | | | | Change-Id: Ifa55b6563a15a91d7906d9e84936c4484323f809
| * Doc: Replace example file lists with links to code.qt.ioTopi Reinio2019-07-091-0/+1
| | | | | | | | | | | | Task-number: QTBUG-74391 Change-Id: I4f5a70c7439b27db2b02907e460b5804d5c6e104 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-291-3/+5
|\ \ | |/ | | | | Change-Id: I2a1987a687fafb73b3b8368db93bcca7a91bb5d0
| * Doc: Complete parameter description several methodsNico Vertriest2019-06-181-3/+5
| | | | | | | | | | Change-Id: Ib9f98683faf2b3a4041371c80a31de1f0902261d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Fix deprecation warnings in QWebSocketHandshakeResponse::getHandshakeResponse()Friedemann Kleint2019-05-271-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix warnings: websockethandshakeresponse.cpp:151:46: warning: ‘QSet<T> QList<T>::toSet() const [with T = QString]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:151:84: warning: ‘QSet<T> QList<T>::toSet() const [with T = QString]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:151:94: warning: ‘QList<T> QSet<T>::toList() const [with T = QString]’ is deprecated: Use values() instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:155:47: warning: ‘QSet<T> QList<T>::toSet() const [with T = QString]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:155:86: warning: ‘QSet<T> QList<T>::toSet() const [with T = QString]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:155:96: warning: ‘QList<T> QSet<T>::toList() const [with T = QString]’ is deprecated: Use values() instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:157:46: warning: ‘QSet<T> QList<T>::toSet() const [with T = QWebSocketProtocol::Version]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:157:82: warning: ‘QSet<T> QList<T>::toSet() const [with T = QWebSocketProtocol::Version]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qwebsockethandshakeresponse.cpp:157:92: warning: ‘QList<T> QSet<T>::toList() const [with T = QWebSocketProtocol::Version]’ is deprecated: Use values() instead. [-Wdeprecated-declarations] by replacing them with a helper function to created a list intersection. Change-Id: Iee37632517760133ceebae4eda394170293f25c3 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | websocket server: add timeout to abort incomplete handshakesHeiko Voigt2019-04-296-5/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A websocket connection can involve two types of handshakes. First an optional SSL handshake and second the websocket handshake itself. Either one can get stalled/stuck if the other side does not answer. To be robust by default and for easy mitigation by users of websockets let's introduce a handshake timeout. We introduce a default timeout of 10 seconds which can be customized by the newly introduced setHandshakeTimeout() method. One major location where connections got stuck was when the connection queue was filled with connections waiting for the SSL handshake. Only connections that have finished this handshake can be processed anyway so we now add them to the queue once they are fully ready to start the websocket handshake. Task-number: QTBUG-63312 Task-number: QTBUG-57026 Change-Id: Ia286221f1d8da1000e98973496280fde16ed811d Reviewed-by: Alf Crüger <a.crueger@baxi-innotech.de> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-135-9/+12
|\ \ | |/ | | | | Change-Id: I43320389826b0f0deac412bf37df9232f2e68a33
| * Automatically register the latest import versionv5.13.0-beta3Kai Koehne2019-04-125-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | This follows what was done in d28c9f6a for Qt Quick Controls 2. The latest import version (e.g. 1.14 in Qt 5.14) will automatically be registered whenever the Qt version is bumped. This avoids needing to wait until a new type is added (or a new revision is added to an existing type) before being able to use the newest Qt Quick version. Change-Id: I3a2232d5f7418ec99441a71fb70d88835dc61a61 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-191-1/+1
|\ \ | |/ | | | | Change-Id: Ic2ff163b19d51fae2c9f2f53c5c046912ab2bc62
| * Update plugins.qmltypes for Qt 5.13Kai Koehne2019-03-181-1/+1
| | | | | | | | | | | | Task-number: QTBUG-73739 Change-Id: Ia7aad40aa100b168b9cf2aae511473ce88820a41 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-122-0/+8
|\ \ | |/ | | | | Change-Id: I8c230768cbb0727da162e504cf18bcc05a43c3dd
| * wasm: fix validity statev5.13.0-beta1Lorn Potter2019-03-112-0/+8
| | | | | | | | | | | | | | Fixes:QTBUG-73689 Change-Id: I5993eb38a8fc45a06a8ced46f71034e4b87ec67b Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Don't use internal members of QObjectLars Knoll2019-02-111-5/+8
|/ | | | | | | | And compile again after those got changed in qtbase. Fixes: QTBUG-73728 Change-Id: Ibcd6af650ed1ceb4f9218a49e9a3c2ca466018bb Reviewed-by: Liang Qi <liang.qi@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2019-01-052-1/+5
|\ | | | | | | Change-Id: Ia08fda4945ea3fd0b7b13f6f65963c7b4fa31468
| * wasm: set and update socket stateLorn Potter2019-01-042-1/+5
| | | | | | | | | | | | | | Fixes: QTBUG-72664 Change-Id: I8bd90f8676835d8f7bec135ad3e6c6b3e9cd9d9a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Set the protocol type so that PAC scripts handle ws/wss correctlyAndy Shaw2018-12-261-0/+2
| | | | | | | | | | | | | | | | | | On macOS it will only allow proxies in a PAC script to use http/https protocols, so this enables them to work by automatically setting these as the type instead. Change-Id: I66589057d40d135229cbae4986ef0819287ea69a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | Remove unneeded CRLF ending from status lineAleksey Lysenko2018-12-211-1/+1
| | | | | | | | | | | | | | | | | | No need to keep the CRLF ending of status line. Task-number: QTBUG-67424 Change-Id: I7f94c7bedf40412b338c56cfe59751f6a9e78f0a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-10-025-139/+98
|\ \ | |/ | | | | Change-Id: I297fa8021bd7520851d139c16b97671d41156919
| * wasm: refactor and convert from EM_ASMv5.12.0-beta4v5.12.0-beta3v5.12.0-beta2v5.12.0-beta1Lorn Potter2018-10-012-137/+94
| | | | | | | | | | | | | | | | | | | | This also has the benefit that binary data is no longer accessed via a global. Change-Id: I2db744696fe88ca03f55897016d9d38e302f820b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| * Update plugins.qmltypesKai Koehne2018-09-273-2/+4
| | | | | | | | | | | | | | | | | | | | | | Add an empty dependencies.json to avoid the implicit QtQuick dependency. Task-number: QTBUG-70264 Change-Id: I67b0f8cee04d3cd255c9df3c9bc7caf79ffdf9a9 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | Use fully-qualified QQmlWebSocket::StatusAndré Klitzing2018-09-241-1/+1
| | | | | | | | | | | | | | | | Found by clazy Change-Id: I0d5acebcc1ced28fe4a2f659a1017a33d2e47f79 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-09-223-0/+245
|\ \ | |/ | | | | Change-Id: Ie28fec3c7ddd160b29529841db55a79ae7bc53df
| * Add support for WebSockets on Qt for WASMLorn Potter2018-09-203-0/+245
| | | | | | | | | | | | | | | | | | Implement the QWebSocket API using HTML WebSocket. Change-Id: I2284f8606d512943d2abc2a96fc48effcc45a786 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Fix detection of the end of HTTP request headersAleksey Lysenko2018-08-291-1/+3
|/ | | | | | | | | Implemented relying only on \r\n\r\n at the end to be sure that HTTP request is fully received. Task-number: QTBUG-70000 Change-Id: I388dca2ce9ef57ef4f4d7a9b6bc22c47ffe42235 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix implicit conversion warningJesus Fernandez2018-08-202-3/+107
| | | | | | | | | | | | | Marks the old functions as deprecated and adds new safe versions.The new functions give access to the native descriptor safely. It also fixes the original functions in Qt 6. warning: implicit conversion loses integer precision: 'qintptr' (aka 'long long') to 'int' Change-Id: I59177905af0181912d2e7824ce68265cb8ee03d9 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Remove redundant options and a stray defineJesus Fernandez2018-08-172-4/+2
| | | | | Change-Id: Ic7ce11f1631197e6ee019b66c0d7ec56590c5ab5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Remove unnecesary default labelJesus Fernandez2018-08-141-2/+0
| | | | | | Change-Id: I994b34614b2e2ee95fed145e7f5dcd873ff7c3f4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix conversion warningsJesus Fernandez2018-08-143-10/+14
| | | | | | Change-Id: I087b72412db19f34b8e890ddc6a3a0fcdd434141 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Use QObjectPrivate::q_ptr instead of shadowing itJesus Fernandez2018-08-146-37/+25
| | | | | | | | | | Some private classes had a q_ptr pointer shadowing the QObjectPrivate::q_ptr pointer. Q_Q casts the QObjectPrivate::q_ptr pointer to match the public class so there is no need to store a different pointer. Change-Id: I8f5c4323b1dcf45a9796c0dd9f522bdbc63add18 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Use nullptr instead of 0Jesus Fernandez2018-08-101-1/+1
| | | | | | Change-Id: Ibad1bbb351d14ab0de140875d2969b7da483eb21 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Use override keywordJesus Fernandez2018-08-1011-18/+18
| | | | | Change-Id: I120dcb26eb451930d02e452cc47262eda44cc77c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix C-style castJesus Fernandez2018-08-101-3/+3
| | | | | | Change-Id: I9e2b2ff177aa921f7f86319de4a229c1a8a4c410 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-08-072-4/+11
|\ | | | | | | Change-Id: Iffe66da51d3b7b38d04ca3c185b3b003b157f886
| * Limit Close frame to 125 bytesMårten Nordheim2018-08-062-4/+11
| | | | | | | | | | | | | | | | | | | | | | All control frames should be limited to 125 frames. https://tools.ietf.org/html/rfc6455#section-5.5 Task-number: QTBUG-62949 Change-Id: Id9b5a431faab6ff6edf7dc2e5c3525e999bc04ea Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
* | Use QUrl::toString() when forming the 'Host' headerTimur Pocheptsov2018-05-161-10/+12
| | | | | | | | | | | | | | | | | | | | This allows to correctly use IPv6 literals and also deals (correctly) with a port (if it's set at all). Task-number: QTBUG-68245 Change-Id: I6d29543887c4ab58d70f0970a6f0a1b822c301df Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | Remove the code to manually initialize resources in static buildsSimon Hausmann2018-04-271-8/+1
| | | | | | | | | | | | | | | | | | After commit be9a56e5e3ced5d0d668fa24e4c65ae928f2e25a in qtbase, this is not needed anymore. Instead the resource system injects the plugin entry point with a reference to all resources. Change-Id: I09efba67c3d2e9b68b73707101f1b8cc22284131 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-04-211-2/+0
|\ \ | |/ | | | | Change-Id: If3f9affe2d1768ea9fc741d9be2a749d3baf2153
| * QWebSocket: fix bytesWritten being emitted twiceMårten Nordheim2018-04-181-2/+0
| | | | | | | | | | | | | | | | Because it was connect-ed twice. Task-number: QTBUG-67778 Change-Id: Ia19d2471c148c615faceb7548566d819683c2193 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | QWebSocket: Add 'bytesToWrite'Mårten Nordheim2018-04-142-0/+15
|/ | | | | | | | | | | | | | | | Add the well-known 'bytesToWrite' function to QWebSocket. Previously the only way to know how many bytes were left to be written was to make a guesstimate on the overhead your message would get and then keep track of the amount sent using the 'bytesWritten' signal. The tests compare using '>' because there is overhead from the headers. [ChangeLog][QWebSocket] Added the bytesToWrite function to QWebSocket. Call this function to see how many bytes are left to write. Change-Id: I82f17a98b582ee3bc02f0c47597b4a6717761f12 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Doc: Add license section to overviewv5.11.0-beta4Kai Koehne2018-04-051-0/+9
| | | | | | Change-Id: I580d2170f76a501dd95c8377d3f480b65a983d53 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Make QWebSocketServer work with Safariv5.11.0-beta3Morten Johan Sørvig2018-03-222-3/+4
| | | | | | | | | | | | | | | | | | | Sending an empty “Server” header during handshake will make Safari error out with “WebSocket connection [...] failed: Invalid UTF-8 sequence in header value” This is an open bug in WebKit: https://bugs.webkit.org/show_bug.cgi?id=139298 As far as I see, “Server” is not a required handshake header as specified in RFC 6455 section 4.2.2 (5), and we can omit it if the server name is not set. Change-Id: Icec142f867813c16e3e3baa1378582164242e049 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Make HTTP header parsing RFC-compliantRobert Griebl2017-11-282-13/+41
| | | | | | | | | | | All this home-grown parsing should be replaced with code from the qhttp* classes. This would result in a big refactoring though, so this commit at least tries to make the header parsing RFC compliant and not choke on perfectly legal "Header:Value" messages. Change-Id: I14303610dc7187b8d8595568fb221c18e4e0d515 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-2010-28/+36
|\ | | | | | | | | | | | | | | Conflicts: src/websockets/qwebsocket_p.cpp tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp Change-Id: I40922fab198a09a3fbba1b2f11b42f2d40e53720
| * Update to new QRandomGenerator APIv5.10.0-beta4Thiago Macieira2017-11-033-6/+6
| | | | | | | | | | | | Change-Id: I69f37f9304f24709a823fffd14e676c097712329 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-307-22/+30
| |\ | | | | | | | | | Change-Id: I3ae5df71f201cfdb9a4c9e7d90a60d1f9792700a
| | * Fix empty sslConfiguration in sslErrors slotAndré Klitzing2017-10-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QWebSocket fires signal sslErrors the QSslConfiguration of QWebSocket is not updated. So client application cannot check it in implemented slot. Fix this by calling the update method like for encrypted signal. Sibling of QTBUG-40401. Change-Id: I18b39f6b6a0791ae67fc2bff5cf2c04a22b0ab85 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Fix handshakeReceived not being invoked in some situationMårten Nordheim2017-10-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the rare case where the handshake was received before the signal and slot was connected it would never invoke handshakeReceived and the server would keep waiting. Task-number: QTBUG-64026 Change-Id: I86d54031d2583b6a0cf2b5348889b5ef859b9aab Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Fix outdated FDL license headerKai Koehne2017-10-235-22/+22
| | | | | | | | | | | | | | | Change-Id: Ic41f3745e800ba54153b36f269017075297c2402 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>