summaryrefslogtreecommitdiff
path: root/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add support for chrono versions of handshakeTimeout functionsv5.14.0-beta2Mårten Nordheim2019-10-091-0/+12
| | | | | | | | | | | | | And rename the int-version of the getter to enable the scenario where someone does not have chrono. From the 5.14 API change review. Amends 2e54dbe86eac61e87782a138dbcc158cb6b10cd9 Change-Id: Icf2f2a3aebc2216defd0a3a569544c4270ddf05a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Properly handle multiple websocket frames in one TCP frameMårten Nordheim2019-08-261-0/+28
| | | | | | | | | | | Since we can have multiple websocket frames in one TCP frame we need to handle them all. Partial revert of b14f5f59a3ae96949e6a33302385a751d6448182 Fixes: QTBUG-77830 Change-Id: If435f6e67f04e4817a3202eb8fe779243591bff3 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Investigate tst_handshakeTimeout test flakinessMårten Nordheim2019-06-271-11/+25
| | | | | | | | | | | | | | | Remove "localhost" in favor of "127.0.0.1" to avoid any name resolution. And wait 5 seconds for all websockets to timeout together, while printing how many have not timed-out in case of failure. Credits to Mårten Nordheim for coding this. With this patch, I can not reproduce the flakiness any longer. Lets see if this is also the case in our CI. Fixes: QTBUG-76572 Change-Id: Ibdbafbd7786c87138bdc84ebc690177211f23f5b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix compilation error when configured without SSLDimitrios Apostolou2019-06-031-0/+1
| | | | | | | | | | | | QTcpSocket definition is apparently indirectly included when compiling with SSL support enabled, but without it the compiler outputs error. Change-Id: I5f4d8978ef04442443e934ee28e949a49a9f5b18 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* tst_QWebSocketServer: Fix deprecation warnings about ↵Friedemann Kleint2019-05-271-1/+1
| | | | | | | | | QSslSocket::supportedCiphers() Replace by QSslConfiguration::supportedCiphers(). Change-Id: Ia5ce3e399272127304ea7e93ba32627df5864381 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* websocket server: add timeout to abort incomplete handshakesHeiko Voigt2019-04-291-14/+154
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* tst_qwebsocketserver: force TLS 1.2 for the PSK testMårten Nordheim2018-11-051-0/+5
| | | | | | | | | When using TLS 1.3 the psk callback is called on the start of a connection. Force TLS 1.2 to avoid this. Task-number: QTBUG-71560 Change-Id: I97df3a9d2f100d10b4a1d2e8d0e4696688ec66ac Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix implicit conversion warningJesus Fernandez2018-08-201-0/+13
| | | | | | | | | | | | | 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>
* QWebSocket: Add 'bytesToWrite'Mårten Nordheim2018-04-141-0/+8
| | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-301-34/+24
|\ | | | | | | Change-Id: I3ae5df71f201cfdb9a4c9e7d90a60d1f9792700a
| * Fix empty sslConfiguration in sslErrors slotAndré Klitzing2017-10-271-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Check count of spy to verify signalAndré Klitzing2017-10-271-31/+17
| | | | | | | | | | | | | | | | | | | | | | | | Looks like QVERIFY(spy.wait()) is a little bit flaky. We should check the count of the spy if it was successful instead of the return value of wait since wait will return false even if the signal was delivered before the call to wait(). Change-Id: I5f9031685dfa69b00155fa22602bab998843cb68 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>
* | Enable tests for boot2qtSami Nurmenniemi2017-07-191-1/+56
|/ | | | | | | | | | | | | Websocket tests for boot2qt were disabled with commit 1a75da8d514c90cf1af250ba3eaa764df4838775. The tests can be enabled since qtdeclarative now fallbacks to software renderer if OpenGL is not supported. Qemu still has missing syscall support so some tests need to be skipped if that condition is detected. Change-Id: I39dba91cb35cc17a9a9263c90a739cbf95efa582 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add a function to hand off a tcp socket to the websocket serverAleksey Lysenko2017-01-271-0/+34
| | | | | | | | | | | | | This method allows a listening port to process connections with different protocols. It lets the websocket server handle a TCP socket, upgrading it to a websocket [ChangeLog][QWebSocketServer] Add support to handle external QTcpSocket Done-with: André Klitzing <aklitzing@gmail.com> Task-number: QTBUG-54276 Change-Id: Ia36b481dc87d6f3806e9f1e61e75e528640f1937 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fixed wrong scheme for secure websocketAleksey Lysenko2016-12-161-0/+56
| | | | | | | | | | Websocket server always constructed QWebSocketHandshakeRequest like for non-secure socket without checking SecureMode. This led to the fact that secure socket had "ws" scheme. Task-number: QTBUG-55927 Change-Id: I881766f55182136072fd23f3fefe93ea60f3d27d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add support for TLS PSK (client and server)André Klitzing2016-06-121-0/+127
| | | | | | | [ChangeLog][QWebSocket] It is now possible to use TLS PSK ciphersuites. Change-Id: I9e96669494cec5e6a4e076fe9f10fcd4ef6358a4 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Updated license headersAntti Kokko2016-01-201-17/+12
| | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I191cd4111d18052fbe80bbe21bf851bf4795a1a6 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* tests: move all auto tests to websockets sub directoryLiang Qi2015-05-221-0/+390
cmake is not included. Change-Id: I9ab6244d8b6b3752f26070b0b15ae70c0cab6d82 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>