| 764 | SC_TRY(connection.response.startResponse(101)); |
| 765 | SC_TRY(connection.response.addHeader("Upgrade", "websocket")); |
| 766 | SC_TRY(connection.response.addHeader("Connection", "Upgrade")); |
| 767 | SC_TRY(connection.response.addHeader("Sec-WebSocket-Accept", accept)); |
| 768 | |
| 769 | transport.readableStream = &connection.getReadableTransportStream(); |
| 770 | transport.writableStream = &connection.getWritableTransportStream(); |
| 771 | transport.buffersPool = &connection.buffersPool; |
| 772 | |
| 773 | SC_TRY(connection.response.sendHeaders( |
| 774 | {[&connection](AsyncBufferView::ID) { connection.getReadableTransportStream().resumeReading(); }})); |
| 775 | connection.markWebSocketUpgraded(); |
| 776 | return Result(true); |
| 777 | } |
| 778 | |
| 779 | Result HttpWebSocketHandshake::rejectServerConnection(HttpResponse& response, |
| 780 | const HttpWebSocketHandshakeResult& result) |
| 781 | { |
| 782 | const int statusCode = result.httpStatusCode(); |
| 783 | if (statusCode == 101) |
| 784 | return Result::Error(HttpResultCategory, HttpError::WebSocketRejectAcceptedRequest); |
| 785 | SC_TRY(response.startResponse(statusCode)); |
| 786 | if (statusCode == 426) |
| 787 | { |
| 788 | SC_TRY(response.addHeader("Sec-WebSocket-Version", "13")); |
| 789 | } |
| 790 | SC_TRY(response.addContentLength(0)); |
| 791 | SC_TRY(response.addHeader("Connection", "close")); |
| 792 | SC_TRY(response.sendHeaders()); |
| 793 | return response.end(); |
| 794 | } |
| 795 | |
| 796 | Result HttpWebSocketClientHandshake::connect(HttpAsyncClient& newClient, AsyncEventLoop& loop, StringSpan url, |
| 797 | StringSpan newClientKey, HttpWebSocketTransportView& newTransport, |
| 798 | HttpWebSocketSha1Mode newSha1Mode) |
| 799 | { |
| 800 | SC_TRY(HttpWebSocketHandshake::validateClientKey(newClientKey)); |
| 801 | client = &newClient; |
| 802 | transport = &newTransport; |
| 803 | clientKey = newClientKey; |
| 804 | sha1Mode = newSha1Mode; |
| 805 | transport->reset(); |
| 806 |
nothing calls this directly
no test coverage detected