[Libreoffice-commits] online.git: common/Session.cpp common/Session.hpp kit/Kit.cpp net/WebSocketHandler.hpp wsd/DocumentBroker.cpp wsd/LOOLWSD.cpp
Michael Meeks (via logerrit)
logerrit at kemper.freedesktop.org
Thu Mar 5 19:29:12 UTC 2020
common/Session.cpp | 2 +-
common/Session.hpp | 2 +-
kit/Kit.cpp | 4 ++--
net/WebSocketHandler.hpp | 28 ++++++++--------------------
wsd/DocumentBroker.cpp | 4 ++--
wsd/LOOLWSD.cpp | 2 +-
6 files changed, 15 insertions(+), 27 deletions(-)
New commits:
commit f70e627795b09522d61185ac38d6ecdced9aca23
Author: Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Thu Mar 5 18:55:00 2020 +0000
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Thu Mar 5 20:28:48 2020 +0100
WebSocket - simplify handleMessage for now.
WebSocketHandler handles this complexity for us now, and for the
forseeable future. Simplify to prepare for larger re-factor.
Change-Id: I73b919885adc358cb6502a13492cdac85c34459c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/90059
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/common/Session.cpp b/common/Session.cpp
index a0cdabe41..3e15330e9 100644
--- a/common/Session.cpp
+++ b/common/Session.cpp
@@ -214,7 +214,7 @@ void Session::shutdown(const WebSocketHandler::StatusCodes statusCode, const std
WebSocketHandler::shutdown(statusCode, statusMessage);
}
-void Session::handleMessage(bool /*fin*/, WSOpCode /*code*/, std::vector<char> &data)
+void Session::handleMessage(const std::vector<char> &data)
{
try
{
diff --git a/common/Session.hpp b/common/Session.hpp
index 093234a2d..ec552f9d7 100644
--- a/common/Session.hpp
+++ b/common/Session.hpp
@@ -92,7 +92,7 @@ public:
return (buffer != nullptr ? sendTextFrame(buffer, std::strlen(buffer)) : false);
}
- virtual void handleMessage(bool fin, WSOpCode code, std::vector<char> &data) override;
+ virtual void handleMessage(const std::vector<char> &data) override;
/// Invoked when we want to disconnect a session.
virtual void disconnect();
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 883efa6fc..188e95586 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -1802,7 +1802,7 @@ private:
vect.assign(data, data + size);
// TODO this is probably wrong...
- session->handleMessage(/* fin = */ false, WSOpCode::Binary, vect);
+ session->handleMessage(vect);
return true;
}
}
@@ -2093,7 +2093,7 @@ public:
}
protected:
- void handleMessage(bool /*fin*/, WSOpCode /*code*/, std::vector<char>& data) override
+ void handleMessage(const std::vector<char>& data) override
{
std::string message(data.data(), data.size());
diff --git a/net/WebSocketHandler.hpp b/net/WebSocketHandler.hpp
index f18927a22..130f81b69 100644
--- a/net/WebSocketHandler.hpp
+++ b/net/WebSocketHandler.hpp
@@ -39,7 +39,6 @@ private:
#if !MOBILEAPP
bool _isMasking;
bool _inFragmentBlock;
- bool _isManualDefrag;
#endif
protected:
@@ -62,7 +61,7 @@ public:
/// defragmentation should be handled inside message handler (true) or the message handler
/// should be called after all fragments of a message were received and the message
/// was defragmented (false).
- WebSocketHandler(bool isClient = false, bool isMasking = true, bool isManualDefrag = false)
+ WebSocketHandler(bool isClient = false, bool isMasking = true)
: _lastPingSentTime(std::chrono::steady_clock::now())
, _pingTimeUs(0)
, _shuttingDown(false)
@@ -70,7 +69,6 @@ public:
#if !MOBILEAPP
, _isMasking(isClient && isMasking)
, _inFragmentBlock(false)
- , _isManualDefrag(isManualDefrag)
#endif
{
}
@@ -91,7 +89,6 @@ public:
#if !MOBILEAPP
, _isMasking(false)
, _inFragmentBlock(false)
- , _isManualDefrag(false)
#endif
{
upgradeToWebSocket(request);
@@ -367,27 +364,18 @@ public:
if (fin)
{
- //If is final fragment then process the accumulated message.
- handleMessage(fin, code, _wsPayload);
+ // If is final fragment then process the accumulated message.
+ handleMessage(_wsPayload);
_inFragmentBlock = false;
}
else
{
- if (_isManualDefrag)
- {
- //If the user wants to process defragmentation on its own then let him process it.
- handleMessage(fin, code, _wsPayload);
- _inFragmentBlock = true;
- }
- else
- {
- _inFragmentBlock = true;
- //If is not final fragment then wait for next fragment.
- return false;
- }
+ _inFragmentBlock = true;
+ // If is not final fragment then wait for next fragment.
+ return false;
}
#else
- handleMessage(true, WSOpCode::Binary, _wsPayload);
+ handleMessage(_wsPayload);
#endif
@@ -627,7 +615,7 @@ protected:
}
/// To be overriden to handle the websocket messages the way you need.
- virtual void handleMessage(bool /*fin*/, WSOpCode /*code*/, std::vector<char> &/*data*/)
+ virtual void handleMessage(const std::vector<char> &/*data*/)
{
}
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index b89fc8439..e6a95c050 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -2284,7 +2284,7 @@ bool ConvertToBroker::startConversion(SocketDisposition &disposition, const std:
Poco::URI::encode(docBroker->getPublicUri().getPath(), "", encodedFrom);
const std::string _load = "load url=" + encodedFrom;
std::vector<char> loadRequest(_load.begin(), _load.end());
- docBroker->_clientSession->handleMessage(true, WSOpCode::Text, loadRequest);
+ docBroker->_clientSession->handleMessage(loadRequest);
// Save is done in the setLoaded
});
@@ -2340,7 +2340,7 @@ void ConvertToBroker::setLoaded()
// Send the save request ...
std::vector<char> saveasRequest(saveAsCmd.begin(), saveAsCmd.end());
- _clientSession->handleMessage(true, WSOpCode::Text, saveasRequest);
+ _clientSession->handleMessage(saveasRequest);
}
std::vector<std::shared_ptr<ClientSession>> DocumentBroker::getSessionsTestOnlyUnsafe()
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index eb35d601c..8ff0564e3 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -1920,7 +1920,7 @@ private:
}
/// Prisoner websocket fun ... (for now)
- virtual void handleMessage(bool /*fin*/, WSOpCode /* code */, std::vector<char> &data) override
+ virtual void handleMessage(const std::vector<char> &data) override
{
if (UnitWSD::get().filterChildMessage(data))
return;
More information about the Libreoffice-commits
mailing list