MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / acceptServerConnection

Method acceptServerConnection

Libraries/Http/HttpWebSocket.cpp:539–560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

537}
538
539Result 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
562Result HttpWebSocketHandshake::rejectServerConnection(HttpResponse& response,
563 const HttpWebSocketHandshakeResult& result)

Callers

nothing calls this directly

Calls 4

startResponseMethod · 0.80
sendHeadersMethod · 0.80
resumeReadingMethod · 0.80
addHeaderMethod · 0.45

Tested by

no test coverage detected