loolwsd/LOOLSession.cpp | 36 ++++++++++++++++++++---------------- loolwsd/LOOLSession.hpp | 4 ++-- 2 files changed, 22 insertions(+), 18 deletions(-)
New commits: commit 32ee3d0650faf615acd901dae66980e9a29c9f02 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Fri May 20 18:52:12 2016 -0400 loolwsd: socket sending returns success or failure Change-Id: I3f486b236e5b6a83292a9d7f3e4931e5235f3a33 Reviewed-on: https://gerrit.libreoffice.org/25239 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp index 55f84b2..7d4a889 100644 --- a/loolwsd/LOOLSession.cpp +++ b/loolwsd/LOOLSession.cpp @@ -71,20 +71,19 @@ LOOLSession::~LOOLSession() { } -void LOOLSession::sendTextFrame(const std::string& text) +bool LOOLSession::sendTextFrame(const std::string& text) { if (!_ws || _ws->poll(Poco::Timespan(0), Socket::SelectMode::SELECT_ERROR)) { Log::error(getName() + ": Bad socket while sending [" + getAbbreviatedMessage(text.c_str(), text.size()) + "]."); - return; + return false; } Log::trace(getName() + " Send: " + getAbbreviatedMessage(text.c_str(), text.size())); - - std::unique_lock<std::mutex> lock(_mutex); - try { + std::unique_lock<std::mutex> lock(_mutex); + const int length = text.size(); if ( length > SMALL_MESSAGE_SIZE ) { @@ -93,29 +92,31 @@ void LOOLSession::sendTextFrame(const std::string& text) } _ws->sendFrame(text.data(), length); + return true; } catch (const Exception& exc) { - Log::warn() << "LOOLSession::sendTextFrame: " - << "Exception: " << exc.displayText() - << (exc.nested() ? "( " + exc.nested()->displayText() + ")" : ""); + Log::error() << "LOOLSession::sendTextFrame: " + << "Exception: " << exc.displayText() + << (exc.nested() ? "( " + exc.nested()->displayText() + ")" : ""); } + + return false; } -void LOOLSession::sendBinaryFrame(const char *buffer, int length) +bool LOOLSession::sendBinaryFrame(const char *buffer, int length) { if (!_ws || _ws->poll(Poco::Timespan(0), Socket::SelectMode::SELECT_ERROR)) { Log::error(getName() + ": Bad socket while sending binary frame of " + std::to_string(length) + " bytes."); - return; + return false; } Log::trace(getName() + " Send: " + std::to_string(length) + " bytes"); - - std::unique_lock<std::mutex> lock(_mutex); - try { + std::unique_lock<std::mutex> lock(_mutex); + if ( length > SMALL_MESSAGE_SIZE ) { const std::string nextmessage = "nextmessage: size=" + std::to_string(length); @@ -123,13 +124,16 @@ void LOOLSession::sendBinaryFrame(const char *buffer, int length) } _ws->sendFrame(buffer, length, WebSocket::FRAME_BINARY); + return true; } catch (const Exception& exc) { - Log::warn() << "LOOLSession::sendBinaryFrame: " - << "Exception: " << exc.displayText() - << (exc.nested() ? "( " + exc.nested()->displayText() + ")" : ""); + Log::error() << "LOOLSession::sendBinaryFrame: " + << "Exception: " << exc.displayText() + << (exc.nested() ? "( " + exc.nested()->displayText() + ")" : ""); } + + return false; } void LOOLSession::parseDocOptions(const StringTokenizer& tokens, int& part, std::string& timestamp) diff --git a/loolwsd/LOOLSession.hpp b/loolwsd/LOOLSession.hpp index cf75433..915fb53 100644 --- a/loolwsd/LOOLSession.hpp +++ b/loolwsd/LOOLSession.hpp @@ -41,8 +41,8 @@ public: const std::string& getName() const { return _name; } bool isDisconnected() const { return _disconnected; } - void sendTextFrame(const std::string& text); - void sendBinaryFrame(const char *buffer, int length); + bool sendTextFrame(const std::string& text); + bool sendBinaryFrame(const char *buffer, int length); bool handleInput(const char *buffer, int length); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits