[Libreoffice-commits] online.git: wsd/ClientSession.cpp

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Wed Jul 15 12:53:35 UTC 2020


 wsd/ClientSession.cpp |   97 ++++++++++++++++++--------------------------------
 1 file changed, 36 insertions(+), 61 deletions(-)

New commits:
commit 27521418675fc3ad6e688a08f24b70f1d336e77b
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed Jul 15 14:07:23 2020 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Jul 15 14:53:16 2020 +0200

    Restructure ClientSession::_handleInput to check tokens once
    
    This allows to avoid redundancy, and makes it explicit which token
    is handled where.
    
    Change-Id: Ibc7ed7617f7f511cb8346e2e82281c3a3fdac9a7
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98821
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Tested-by: Jenkins
    Reviewed-by: Tor Lillqvist <tml at collabora.com>

diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp
index 293fff67d..0f5a09b2c 100644
--- a/wsd/ClientSession.cpp
+++ b/wsd/ClientSession.cpp
@@ -395,66 +395,6 @@ bool ClientSession::_handleInput(const char *buffer, int length)
 
         return loadDocument(buffer, length, tokens, docBroker);
     }
-    else if (tokens[0] != "canceltiles" &&
-             tokens[0] != "tileprocessed" &&
-             tokens[0] != "clientzoom" &&
-             tokens[0] != "clientvisiblearea" &&
-             tokens[0] != "outlinestate" &&
-             tokens[0] != "commandvalues" &&
-             tokens[0] != "closedocument" &&
-             tokens[0] != "versionrestore" &&
-             tokens[0] != "downloadas" &&
-             tokens[0] != "getchildid" &&
-             tokens[0] != "gettextselection" &&
-             tokens[0] != "paste" &&
-             tokens[0] != "insertfile" &&
-             tokens[0] != "key" &&
-             tokens[0] != "textinput" &&
-             tokens[0] != "windowkey" &&
-             tokens[0] != "mouse" &&
-             tokens[0] != "windowmouse" &&
-             tokens[0] != "windowgesture" &&
-             tokens[0] != "partpagerectangles" &&
-             tokens[0] != "ping" &&
-             tokens[0] != "renderfont" &&
-             tokens[0] != "requestloksession" &&
-             tokens[0] != "resetselection" &&
-             tokens[0] != "save" &&
-             tokens[0] != "saveas" &&
-             tokens[0] != "savetostorage" &&
-             tokens[0] != "selectgraphic" &&
-             tokens[0] != "selecttext" &&
-             tokens[0] != "windowselecttext" &&
-             tokens[0] != "setclientpart" &&
-             tokens[0] != "selectclientpart" &&
-             tokens[0] != "moveselectedclientparts" &&
-             tokens[0] != "setpage" &&
-             tokens[0] != "status" &&
-             tokens[0] != "statusupdate" &&
-             tokens[0] != "tile" &&
-             tokens[0] != "tilecombine" &&
-             tokens[0] != "uno" &&
-             tokens[0] != "useractive" &&
-             tokens[0] != "userinactive" &&
-             tokens[0] != "paintwindow" &&
-             tokens[0] != "windowcommand" &&
-             tokens[0] != "signdocument" &&
-             tokens[0] != "asksignaturestatus" &&
-             tokens[0] != "uploadsigneddocument" &&
-             tokens[0] != "exportsignanduploaddocument" &&
-             tokens[0] != "rendershapeselection" &&
-             tokens[0] != "removesession" &&
-             tokens[0] != "renamefile" &&
-             tokens[0] != "resizewindow" &&
-             tokens[0] != "removetextcontext" &&
-             tokens[0] != "dialogevent" &&
-             tokens[0] != "completefunction" &&
-             tokens[0] != "formfieldevent")
-    {
-        LOG_ERR("Session [" << getId() << "] got unknown command [" << tokens[0] << "].");
-        sendTextFrameAndLogError("error: cmd=" + tokens[0] + " kind=unknown");
-        return false;
-    }
     else if (getDocURL().empty())
     {
         sendTextFrameAndLogError("error: cmd=" + tokens[0] + " kind=nodocloaded");
@@ -746,7 +686,37 @@ bool ClientSession::_handleInput(const char *buffer, int length)
     {
         return forwardToChild(firstLine, docBroker);
     }
-    else
+    else if (tokens[0] == "outlinestate" ||
+             tokens[0] == "downloadas" ||
+             tokens[0] == "getchildid" ||
+             tokens[0] == "gettextselection" ||
+             tokens[0] == "paste" ||
+             tokens[0] == "insertfile" ||
+             tokens[0] == "key" ||
+             tokens[0] == "textinput" ||
+             tokens[0] == "windowkey" ||
+             tokens[0] == "mouse" ||
+             tokens[0] == "windowmouse" ||
+             tokens[0] == "windowgesture" ||
+             tokens[0] == "requestloksession" ||
+             tokens[0] == "resetselection" ||
+             tokens[0] == "saveas" ||
+             tokens[0] == "selectgraphic" ||
+             tokens[0] == "selecttext" ||
+             tokens[0] == "windowselecttext" ||
+             tokens[0] == "setpage" ||
+             tokens[0] == "uno" ||
+             tokens[0] == "useractive" ||
+             tokens[0] == "userinactive" ||
+             tokens[0] == "paintwindow" ||
+             tokens[0] == "windowcommand" ||
+             tokens[0] == "signdocument" ||
+             tokens[0] == "asksignaturestatus" ||
+             tokens[0] == "uploadsigneddocument" ||
+             tokens[0] == "exportsignanduploaddocument" ||
+             tokens[0] == "rendershapeselection" ||
+             tokens[0] == "resizewindow" ||
+             tokens[0] == "removetextcontext")
     {
         if (tokens.equals(0, "key"))
             _keyEvents++;
@@ -766,6 +736,11 @@ bool ClientSession::_handleInput(const char *buffer, int length)
             return true;
         }
     }
+    else
+    {
+        LOG_ERR("Session [" << getId() << "] got unknown command [" << tokens[0] << "].");
+        sendTextFrameAndLogError("error: cmd=" + tokens[0] + " kind=unknown");
+    }
 
     return false;
 }


More information about the Libreoffice-commits mailing list