[Libreoffice-commits] online.git: wsd/LOOLWSD.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Tue Jan 3 05:54:48 UTC 2017
wsd/LOOLWSD.cpp | 63 ++++++++++++++++++++++++++++----------------------------
1 file changed, 32 insertions(+), 31 deletions(-)
New commits:
commit 98b74174e94ee14a901ae81daf93855d09f28759
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Mon Jan 2 13:47:57 2017 -0500
wsd: move more boilerplate code from processGetRequest to handleGetRequest
Change-Id: I7ef76c9e1e48aad275db57b2d4b692531abce9ae
Reviewed-on: https://gerrit.libreoffice.org/32671
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 3b86077..aeeb67d 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -797,7 +797,28 @@ private:
ws->setBlocking(true);
ws->setSendTimeout(WS_SEND_TIMEOUT_MS * 1000);
- processGetRequest(uri, ws, id);
+ // Indicate to the client that document broker is searching.
+ const std::string status("statusindicator: find");
+ LOG_TRC("Sending to Client [" << status << "].");
+ ws->sendFrame(status.data(), status.size());
+
+ const auto uriPublic = DocumentBroker::sanitizeURI(uri);
+ const auto docKey = DocumentBroker::getDocKey(uriPublic);
+ LOG_INF("Sanitized URI [" << uri << "] to [" << uriPublic.toString() <<
+ "] and mapped to docKey [" << docKey << "] for session [" << id << "].");
+
+ // Check if readonly session is required
+ bool isReadOnly = false;
+ for (const auto& param : uriPublic.getQueryParameters())
+ {
+ LOG_DBG("Query param: " << param.first << ", value: " << param.second);
+ if (param.first == "permission" && param.second == "readonly")
+ {
+ isReadOnly = true;
+ }
+ }
+
+ processGetRequest(uri, ws, id, uriPublic, docKey, isReadOnly);
}
catch (const WebSocketErrorMessageException& exc)
{
@@ -825,29 +846,9 @@ private:
}
/// Process GET requests.
- static void processGetRequest(const std::string& uri, std::shared_ptr<LOOLWebSocket>& ws, const std::string& id)
+ static void processGetRequest(const std::string& uri, std::shared_ptr<LOOLWebSocket>& ws, const std::string& id,
+ const Poco::URI& uriPublic, const std::string& docKey, const bool isReadOnly)
{
- // Indicate to the client that document broker is searching.
- std::string status("statusindicator: find");
- LOG_TRC("Sending to Client [" << status << "].");
- ws->sendFrame(status.data(), status.size());
-
- const auto uriPublic = DocumentBroker::sanitizeURI(uri);
- const auto docKey = DocumentBroker::getDocKey(uriPublic);
- LOG_INF("Sanitized url [" << uri << "] to [" << uriPublic.toString() <<
- "] and mapped to docKey [" << docKey << "].");
-
- // Check if readonly session is required
- bool isReadOnly = false;
- for (const auto& param : uriPublic.getQueryParameters())
- {
- LOG_DBG("Query param: " << param.first << ", value: " << param.second);
- if (param.first == "permission" && param.second == "readonly")
- {
- isReadOnly = true;
- }
- }
-
std::unique_lock<std::mutex> docBrokersLock(DocBrokersMutex);
cleanupDocBrokers();
@@ -987,15 +988,15 @@ private:
// Below this, we need to cleanup internal references.
try
{
- // Indicate to the client that is waiting to connect to lokit process.
- status = "statusindicator: connect";
- LOG_TRC("Sending to Client [" << status << "].");
- ws->sendFrame(status.data(), status.size());
+ // Indicate to the client that we're connecting to the docbroker.
+ const std::string statusConnect = "statusindicator: connect";
+ LOG_TRC("Sending to Client [" << statusConnect << "].");
+ ws->sendFrame(statusConnect.data(), statusConnect.size());
// Now the bridge beetween the client and kit process is connected
- status = "statusindicator: ready";
- LOG_TRC("Sending to Client [" << status << "].");
- ws->sendFrame(status.data(), status.size());
+ const std::string statusReady = "statusindicator: ready";
+ LOG_TRC("Sending to Client [" << statusReady << "].");
+ ws->sendFrame(statusReady.data(), statusReady.size());
const std::string fs = FileUtil::checkDiskSpaceOnRegisteredFileSystems();
if (!fs.empty())
@@ -1086,7 +1087,7 @@ private:
catch (const UnauthorizedRequestException& exc)
{
LOG_ERR("Error in client request handler: " << exc.toString());
- status = "error: cmd=internal kind=unauthorized";
+ const std::string status = "error: cmd=internal kind=unauthorized";
LOG_TRC("Sending to Client [" << status << "].");
ws->sendFrame(status.data(), status.size());
}
More information about the Libreoffice-commits
mailing list