net/Socket.hpp | 2 +- net/WebSocketHandler.hpp | 9 ++++++++- wsd/LOOLWSD.cpp | 20 +++++++++++++++----- 3 files changed, 24 insertions(+), 7 deletions(-)
New commits: commit 5ae94cc7ecc023122dfa4b67fa22bb2cf75fb088 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sun Mar 26 23:06:44 2017 -0400 wsd: onConnect takes shared_ptr and better logging Change-Id: I175dfa1f28444b9bb1f612242ee44b6d0507272c Reviewed-on: https://gerrit.libreoffice.org/35737 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/net/Socket.hpp b/net/Socket.hpp index 56a33de6..6a511744 100644 --- a/net/Socket.hpp +++ b/net/Socket.hpp @@ -516,7 +516,7 @@ public: /// Called when the socket is newly created to /// set the socket associated with this ResponseClient. /// Will be called exactly once. - virtual void onConnect(const std::weak_ptr<StreamSocket>& socket) = 0; + virtual void onConnect(const std::shared_ptr<StreamSocket>& socket) = 0; enum class SocketOwnership { diff --git a/net/WebSocketHandler.hpp b/net/WebSocketHandler.hpp index 6983fbae..ce0d13e9 100644 --- a/net/WebSocketHandler.hpp +++ b/net/WebSocketHandler.hpp @@ -62,9 +62,10 @@ public: } /// Implementation of the SocketHandlerInterface. - void onConnect(const std::weak_ptr<StreamSocket>& socket) override + void onConnect(const std::shared_ptr<StreamSocket>& socket) override { _socket = socket; + LOG_TRC("#" << socket->getFD() << " Connected to WS Handler 0x" << std::hex << this << std::dec); } enum WSOpCode { @@ -105,7 +106,10 @@ public: { auto socket = _socket.lock(); if (socket == nullptr) + { + LOG_ERR("No socket associated with WebSocketHandler 0x" << std::hex << this << std::dec); return; + } LOG_TRC("#" << socket->getFD() << ": Shutdown websocket, code: " << static_cast<unsigned>(statusCode) << ", message: " << statusMessage); @@ -128,7 +132,10 @@ public: { auto socket = _socket.lock(); if (socket == nullptr) + { + LOG_ERR("No socket associated with WebSocketHandler 0x" << std::hex << this << std::dec); return false; + } // websocket fun ! const size_t len = socket->_inBuffer.size(); diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp index d9b1db56..05abba1d 100644 --- a/wsd/LOOLWSD.cpp +++ b/wsd/LOOLWSD.cpp @@ -1396,15 +1396,19 @@ public: private: /// Keep our socket around ... - void onConnect(const std::weak_ptr<StreamSocket>& socket) override + void onConnect(const std::shared_ptr<StreamSocket>& socket) override { - LOG_TRC("Prisoner - new socket"); _socket = socket; + LOG_TRC("#" << socket->getFD() << " Prisoner connected."); } void onDisconnect() override { - LOG_TRC("Prisoner connection disconnected"); + auto socket = _socket.lock(); + if (socket) + LOG_TRC("#" << socket->getFD() << " Prisoner connection disconnected."); + else + LOG_WRN("Prisoner connection disconnected but without valid socket."); // Notify the broker that we're done. auto child = _childProcess.lock(); @@ -1525,7 +1529,11 @@ private: if (UnitWSD::get().filterChildMessage(data)) return; - LOG_TRC("Prisoner message [" << getAbbreviatedMessage(&data[0], data.size()) << "]."); + auto socket = _socket.lock(); + if (socket) + LOG_TRC("#" << socket->getFD() << " Prisoner message [" << getAbbreviatedMessage(&data[0], data.size()) << "]."); + else + LOG_WRN("Message handler called but without valid socket."); auto child = _childProcess.lock(); auto docBroker = child ? child->getDocumentBroker() : nullptr; @@ -1567,10 +1575,11 @@ public: private: /// Set the socket associated with this ResponseClient. - void onConnect(const std::weak_ptr<StreamSocket>& socket) override + void onConnect(const std::shared_ptr<StreamSocket>& socket) override { _id = LOOLWSD::GenSessionId(); _socket = socket; + LOG_TRC("#" << socket->getFD() << " Connected to ClientRequestDispatcher."); } /// Called after successful socket reads. @@ -2108,6 +2117,7 @@ private: { // Set the ClientSession to handle Socket events. socket->setHandler(clientSession); + LOG_DBG("Socket #" << socket->getFD() << " handler is " << clientSession->getName()); // Move the socket into DocBroker. docBroker->addSocketToPoll(socket); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits