wsd/ClientSession.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)
New commits: commit b8edc135a7ce72631da8efefd78cd3cbc287c469 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sun Jan 22 23:19:04 2017 -0500 wsd: use Message object to handle responses back to clients Change-Id: I5ddb32bbd7290c27308199f40f0ed286a869eafd Reviewed-on: https://gerrit.libreoffice.org/33441 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index 6437d00..742bb07 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -477,9 +477,10 @@ void ClientSession::senderThread() bool ClientSession::handleKitToClientMessage(const char* buffer, const int length) { - LOG_TRC(getName() + ": handling [" << getAbbreviatedMessage(buffer, length) << "]."); - const std::string firstLine = getFirstLine(buffer, length); - StringTokenizer tokens(firstLine, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM); + const auto payload = std::make_shared<Message>(buffer, length, Message::Dir::Out); + + LOG_TRC(getName() + ": handling [" << payload->abbr() << "]."); + const std::string& firstLine = payload->firstLine(); const auto docBroker = _docBroker.lock(); if (!docBroker) @@ -490,6 +491,7 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt LOOLWSD::dumpOutgoingTrace(docBroker->getJailId(), getId(), firstLine); + const auto& tokens = payload->tokens(); if (tokens[0] == "unocommandresult:") { const std::string stringMsg(buffer, length); @@ -536,7 +538,6 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt errorKind == "passwordrequired:to-modify" || errorKind == "wrongpassword") { - const auto payload = std::make_shared<Message>(buffer, length, Message::Dir::Out); forwardToClient(payload); LOG_WRN("Document load failed: " << errorKind); return false; @@ -544,13 +545,13 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt } } } - else if (tokens[0] == "curpart:" && tokens.count() == 2) + else if (tokens[0] == "curpart:" && tokens.size() == 2) { //TODO: Should forward to client? int curPart; return getTokenInteger(tokens[1], "part", curPart); } - else if (tokens.count() == 2 && tokens[0] == "saveas:") + else if (tokens.size() == 2 && tokens[0] == "saveas:") { std::string url; if (!getTokenString(tokens[1], "url", url)) @@ -580,7 +581,7 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt setSaveAsUrl(url); return true; } - else if (tokens.count() == 2 && tokens[0] == "statechanged:") + else if (tokens.size() == 2 && tokens[0] == "statechanged:") { if (docBroker) { @@ -604,7 +605,6 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt docBroker->setLoaded(); // Forward the status response to the client. - const auto payload = std::make_shared<Message>(buffer, length, Message::Dir::Out); return forwardToClient(payload); } else if (tokens[0] == "commandvalues:") @@ -628,7 +628,7 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt } else if (tokens[0] == "partpagerectangles:") { - if (tokens.count() > 1 && !tokens[1].empty()) + if (tokens.size() > 1 && !tokens[1].empty()) { docBroker->tileCache().saveTextFile(std::string(buffer, length), "partpagerectangles.txt"); } @@ -662,7 +662,7 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt else if (tokens[0] == "renderfont:") { std::string font, text; - if (tokens.count() < 3 || + if (tokens.size() < 3 || !getTokenString(tokens[1], "font", font)) { LOG_ERR("Bad syntax for: " << firstLine); @@ -672,7 +672,6 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt getTokenString(tokens[2], "char", text); assert(firstLine.size() < static_cast<std::string::size_type>(length)); docBroker->tileCache().saveRendering(font+text, "font", buffer + firstLine.size() + 1, length - firstLine.size() - 1); - const auto payload = std::make_shared<Message>(buffer, length, Message::Dir::Out); return forwardToClient(payload); } } @@ -682,7 +681,6 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt } // Forward everything else. - const auto payload = std::make_shared<Message>(buffer, length, Message::Dir::Out); return forwardToClient(payload); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits