<testcase> <info> <keywords> WebSockets </keywords> </info> # # Sends a PING + a 5 byte hello TEXT <reply> <data nocheck="yes" nonewline="yes"> HTTP/1.1 101 Switching to WebSockets swsclose Server: test-server/fake Upgrade: websocket Connection: Upgrade Something: else Sec-WebSocket-Accept: HkPsVga7+8LuxM4RGQ5p9tZHeYs= %hex[%89%00%81%05hello]hex% </data> # allow upgrade <servercmd> upgrade </servercmd> </reply> # # Client-side <client> # require debug for the forced CURL_ENTROPY <features> debug ws </features> <server> http </server> <name> WebSockets curl_ws_recv() with closed connection </name> <tool> lib%TESTNUMBER </tool> <command> ws://%HOSTIP:%HTTPPORT/%TESTNUMBER </command> </client> # # PONG with no data and the 32 bit mask # <verify> <protocol nocheck="yes" crlf="yes"> GET /%TESTNUMBER HTTP/1.1 Host: %HOSTIP:%HTTPPORT User-Agent: websocket/2304 Accept: */* Upgrade: websocket Connection: Upgrade Sec-WebSocket-Version: 13 Sec-WebSocket-Key: NDMyMTUzMjE2MzIxNzMyMQ== </protocol> # This test used to check that "connection closed" was output, but # that is flaky since the outgoing PING just before might fail already # and then the test exists before the output gets to be written </verify> </testcase>