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

Method validateClientResponse

Libraries/Http/HttpWebSocket.cpp:490–505  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

488}
489
490Result HttpWebSocketHandshake::validateClientResponse(const HttpWebSocketClientHandshakeResponseView& response,
491 StringSpan expectedClientKey)
492{
493 SC_TRY_MSG(response.statusCode == 101, "HttpWebSocketHandshake expected 101 Switching Protocols");
494 SC_TRY_MSG(scHttpWebSocketEqualsIgnoreCase(scHttpWebSocketTrim(response.upgrade), "websocket"),
495 "HttpWebSocketHandshake response Upgrade header invalid");
496 SC_TRY_MSG(headerContainsToken(response.connection, "Upgrade"),
497 "HttpWebSocketHandshake response Connection header invalid");
498
499 char acceptStorage[AcceptKeyLength] = {0};
500 StringSpan expectedAccept;
501 SC_TRY(computeAccept(expectedClientKey, acceptStorage, expectedAccept));
502 SC_TRY_MSG(scHttpWebSocketEqualsIgnoreCase(scHttpWebSocketTrim(response.secWebSocketAccept), expectedAccept),
503 "HttpWebSocketHandshake response Sec-WebSocket-Accept invalid");
504 return Result(true);
505}
506
507Result HttpWebSocketHandshake::validateClientResponse(const HttpAsyncClientResponse& response,
508 StringSpan expectedClientKey)

Callers

nothing calls this directly

Calls 4

scHttpWebSocketTrimFunction · 0.85
ResultClass · 0.50
getHeaderMethod · 0.45

Tested by

no test coverage detected