| 537 | } |
| 538 | |
| 539 | Result HttpWebSocketHandshake::acceptServerConnection(HttpConnection& connection, HttpWebSocketTransportView& transport, |
| 540 | Span<char> acceptStorage) |
| 541 | { |
| 542 | HttpWebSocketServerHandshakeRequestView request; |
| 543 | const HttpWebSocketHandshakeResult validation = validateServerRequest(connection.request, &request); |
| 544 | SC_TRY_MSG(validation.accepted(), "HttpWebSocketHandshake server request is not acceptable"); |
| 545 | |
| 546 | StringSpan accept; |
| 547 | SC_TRY(computeAccept(request.secWebSocketKey, acceptStorage, accept)); |
| 548 | SC_TRY(connection.response.startResponse(101)); |
| 549 | SC_TRY(connection.response.addHeader("Upgrade", "websocket")); |
| 550 | SC_TRY(connection.response.addHeader("Connection", "Upgrade")); |
| 551 | SC_TRY(connection.response.addHeader("Sec-WebSocket-Accept", accept)); |
| 552 | |
| 553 | connection.markWebSocketUpgraded(); |
| 554 | transport.readableStream = &connection.getReadableTransportStream(); |
| 555 | transport.writableStream = &connection.getWritableTransportStream(); |
| 556 | transport.buffersPool = &connection.buffersPool; |
| 557 | |
| 558 | return connection.response.sendHeaders( |
| 559 | {[&connection](AsyncBufferView::ID) { connection.getReadableTransportStream().resumeReading(); }}); |
| 560 | } |
| 561 | |
| 562 | Result HttpWebSocketHandshake::rejectServerConnection(HttpResponse& response, |
| 563 | const HttpWebSocketHandshakeResult& result) |
nothing calls this directly
no test coverage detected