Skip to content

Commit 8924a63

Browse files
committed
Fix #2889 WebSocket close code byte order
1 parent 3e7562a commit 8924a63

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

core/network/WebSocket.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -457,15 +457,11 @@ void WebSocket::close(uint16_t code, std::string_view reason)
457457
{
458458
_state = State::CLOSING;
459459

460-
std::vector<char> closeData(sizeof(_closeCode)+reason.size());
461-
memcpy(closeData.data(), &_closeCode, sizeof(_closeCode));
460+
yasio::obstream obs(sizeof(code, reason.size()));
461+
obs.write(_closeCode);
462+
obs.write_bytes(reason);
462463

463-
if (!reason.empty())
464-
{
465-
memcpy(closeData.data()+sizeof(_closeCode), reason.data(), reason.size());
466-
}
467-
468-
WebSocketProtocol::sendFrame(*this, closeData.data(), closeData.size(), ws::detail::opcode::close);
464+
WebSocketProtocol::sendFrame(*this, obs.data(), obs.length(), ws::detail::opcode::close);
469465

470466
_service->close(0);
471467

0 commit comments

Comments
 (0)