[Libreoffice-commits] online.git: loolwsd/PrisonerSession.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Sat May 21 03:41:46 UTC 2016
loolwsd/PrisonerSession.cpp | 130 +++++++++++++++++++++-----------------------
1 file changed, 63 insertions(+), 67 deletions(-)
New commits:
commit 71cd345fd64418ab099a421b30b6edf99c285365
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Fri May 20 20:15:50 2016 -0400
loolwsd: cleanup and reformatting of PrisonerSession
Change-Id: I26ea5a1bf5010458b1da9b2d25b4236ef104c4b9
Reviewed-on: https://gerrit.libreoffice.org/25243
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/PrisonerSession.cpp b/loolwsd/PrisonerSession.cpp
index aae0213..3bcf134 100644
--- a/loolwsd/PrisonerSession.cpp
+++ b/loolwsd/PrisonerSession.cpp
@@ -65,94 +65,90 @@ bool PrisonerSession::_handleInput(const char *buffer, int length)
// Snoop at some messages and manipulate tile cache information as needed
auto peer = _peer.lock();
-
+ if (!peer)
{
- if (!peer)
- {
- throw Poco::ProtocolException("The session has not been assigned a peer.");
- }
+ throw Poco::ProtocolException("The session has not been assigned a peer.");
+ }
- if (tokens[0] == "unocommandresult:")
+ if (tokens[0] == "unocommandresult:")
+ {
+ const std::string stringMsg(buffer, length);
+ Log::info(getName() + "Command: " + stringMsg);
+ const auto index = stringMsg.find_first_of('{');
+ if (index != std::string::npos)
{
- const std::string stringMsg(buffer, length);
- Log::info(getName() + "Command: " + stringMsg);
- const auto index = stringMsg.find_first_of('{');
- if (index != std::string::npos)
+ const std::string stringJSON = stringMsg.substr(index);
+ Poco::JSON::Parser parser;
+ const auto result = parser.parse(stringJSON);
+ const auto& object = result.extract<Poco::JSON::Object::Ptr>();
+ if (object->get("commandName").toString() == ".uno:Save" &&
+ object->get("success").toString() == "true")
{
- const std::string stringJSON = stringMsg.substr(index);
- Poco::JSON::Parser parser;
- const auto result = parser.parse(stringJSON);
- const auto& object = result.extract<Poco::JSON::Object::Ptr>();
- if (object->get("commandName").toString() == ".uno:Save" &&
- object->get("success").toString() == "true")
- {
- _docBroker->save();
- return true;
- }
+ _docBroker->save();
+ return true;
}
}
-
- if (tokens[0] == "error:")
+ }
+ else
+ if (tokens[0] == "error:")
+ {
+ std::string errorCommand;
+ std::string errorKind;
+ if (getTokenString(tokens[1], "cmd", errorCommand) &&
+ getTokenString(tokens[2], "kind", errorKind) )
{
- std::string errorCommand;
- std::string errorKind;
- if (getTokenString(tokens[1], "cmd", errorCommand) &&
- getTokenString(tokens[2], "kind", errorKind) )
+ if (errorCommand == "load")
{
- if (errorCommand == "load")
+ if (errorKind == "passwordrequired:to-view" ||
+ errorKind == "passwordrequired:to-modify" ||
+ errorKind == "wrongpassword")
{
- if (errorKind == "passwordrequired:to-view" ||
- errorKind == "passwordrequired:to-modify" ||
- errorKind == "wrongpassword")
- {
- forwardToPeer(_peer, buffer, length);
- peer->setLoadFailed(errorKind);
- return false;
- }
+ forwardToPeer(_peer, buffer, length);
+ peer->setLoadFailed(errorKind);
+ return false;
}
}
}
-
- if (tokens[0] == "curpart:" &&
- tokens.count() == 2 &&
- getTokenInteger(tokens[1], "part", _curPart))
+ }
+ else
+ if (tokens[0] == "curpart:" &&
+ tokens.count() == 2 &&
+ getTokenInteger(tokens[1], "part", _curPart))
+ {
+ return true;
+ }
+ else
+ if (tokens.count() == 2 && tokens[0] == "saveas:")
+ {
+ std::string url;
+ if (!getTokenString(tokens[1], "url", url))
{
- return true;
+ Log::error("Bad syntax for: " + firstLine);
+ return false;
}
- if (tokens.count() == 2 && tokens[0] == "saveas:")
- {
- std::string url;
- if (!getTokenString(tokens[1], "url", url))
- return true;
-
- if (peer)
- {
- // Save as completed, inform the other (Kind::ToClient)
- // PrisonerSession about it.
+ // Save as completed, inform the other (Kind::ToClient)
+ // PrisonerSession about it.
- const std::string filePrefix("file:///");
- if (url.find(filePrefix) == 0)
- {
- // Rewrite file:// URLs, as they are visible to the outside world.
- const Path path(_docBroker->getJailRoot(), url.substr(filePrefix.length()));
- url = filePrefix + path.toString().substr(1);
- }
-
- peer->setSaveAsUrl(url);
- }
-
- return true;
+ const std::string filePrefix("file:///");
+ if (url.find(filePrefix) == 0)
+ {
+ // Rewrite file:// URLs, as they are visible to the outside world.
+ const Path path(_docBroker->getJailRoot(), url.substr(filePrefix.length()));
+ url = filePrefix + path.toString().substr(1);
}
- else if (tokens.count() == 2 && tokens[0] == "statechanged:")
+
+ peer->setSaveAsUrl(url);
+ return true;
+ }
+ else if (tokens.count() == 2 && tokens[0] == "statechanged:")
+ {
+ if (_docBroker)
{
StringTokenizer stateTokens(tokens[1], "=", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
if (stateTokens.count() == 2 && stateTokens[0] == ".uno:ModifiedStatus")
{
- if (_docBroker)
- {
- _docBroker->setModified(stateTokens[1] == "true");
- }
+ _docBroker->setModified(stateTokens[1] == "true");
}
}
}
More information about the Libreoffice-commits
mailing list