From c6c044b7840f747d879ae67f6124936b52cb7a99 Mon Sep 17 00:00:00 2001 From: lotodore Date: Mon, 16 Sep 2013 22:57:12 +0200 Subject: [PATCH] Fixing crash when sending data to a closed websocket connection. --- src/net/common/websendbuffer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/net/common/websendbuffer.cpp b/src/net/common/websendbuffer.cpp index c3489132..daba16d3 100644 --- a/src/net/common/websendbuffer.cpp +++ b/src/net/common/websendbuffer.cpp @@ -68,7 +68,11 @@ WebSendBuffer::InternalStorePacket(boost::shared_ptr session, boost google::protobuf::uint8 *buf = new google::protobuf::uint8[packetSize]; packet->GetMsg()->SerializeWithCachedSizesToArray(buf); - m_webData->webSocketServer->send(m_webData->webHandle, string((const char *)buf, packetSize), websocketpp::frame::opcode::BINARY); + boost::system::error_code ec; + m_webData->webSocketServer->send(m_webData->webHandle, string((const char *)buf, packetSize), websocketpp::frame::opcode::BINARY, ec); + if (ec) { + SetCloseAfterSend(); + } delete[] buf; }