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.me...@collabora.com>
AuthorDate: Thu Mar 5 18:55:00 2020 +0000
Commit:     Michael Meeks <michael.me...@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 <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Michael Meeks <michael.me...@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;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to