[Libreoffice-commits] online.git: loolwsd/IoUtil.hpp loolwsd/LOOLSession.cpp loolwsd/LOOLWSD.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Sat May 21 03:19:22 UTC 2016
loolwsd/IoUtil.hpp | 2 +-
loolwsd/LOOLSession.cpp | 12 ++++++------
loolwsd/LOOLWSD.cpp | 16 ++++++++++++----
3 files changed, 19 insertions(+), 11 deletions(-)
New commits:
commit e797ae9861c82144c43787ff9fe9f1ece52a9609
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Thu May 19 20:28:02 2016 -0400
loolwsd: logging improvements
Change-Id: Ic28e8f523f67e3339cae20adcf6cab966b610f24
Reviewed-on: https://gerrit.libreoffice.org/25233
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/IoUtil.hpp b/loolwsd/IoUtil.hpp
index 780754c..2584374 100644
--- a/loolwsd/IoUtil.hpp
+++ b/loolwsd/IoUtil.hpp
@@ -28,7 +28,7 @@ namespace IoUtil
int receiveFrame(Poco::Net::WebSocket& socket, void* buffer, int length, int& flags);
/// Synchronously process WebSocket requests and dispatch to handler.
- //. Handler returns false to end.
+ /// Handler returns false to end.
void SocketProcessor(const std::shared_ptr<Poco::Net::WebSocket>& ws,
const std::function<bool(const std::vector<char>&)>& handler,
const std::function<void()>& closeFrame,
diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp
index 3eda87d..55f84b2 100644
--- a/loolwsd/LOOLSession.cpp
+++ b/loolwsd/LOOLSession.cpp
@@ -75,11 +75,11 @@ void LOOLSession::sendTextFrame(const std::string& text)
{
if (!_ws || _ws->poll(Poco::Timespan(0), Socket::SelectMode::SELECT_ERROR))
{
- Log::error("Socket error to send " + getAbbreviatedMessage(text.c_str(), text.size()) + " to.");
+ Log::error(getName() + ": Bad socket while sending [" + getAbbreviatedMessage(text.c_str(), text.size()) + "].");
return;
}
- else
- Log::trace(getName() + " Send: " + getAbbreviatedMessage(text.c_str(), text.size()));
+
+ Log::trace(getName() + " Send: " + getAbbreviatedMessage(text.c_str(), text.size()));
std::unique_lock<std::mutex> lock(_mutex);
@@ -106,11 +106,11 @@ void LOOLSession::sendBinaryFrame(const char *buffer, int length)
{
if (!_ws || _ws->poll(Poco::Timespan(0), Socket::SelectMode::SELECT_ERROR))
{
- Log::error("Socket error to send binary frame of " + std::to_string(length) + " bytes to.");
+ Log::error(getName() + ": Bad socket while sending binary frame of " + std::to_string(length) + " bytes.");
return;
}
- else
- Log::trace(getName() + " Send: " + std::to_string(length) + " bytes");
+
+ Log::trace(getName() + " Send: " + std::to_string(length) + " bytes");
std::unique_lock<std::mutex> lock(_mutex);
diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index e9f44ab..bea8637 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -390,7 +390,6 @@ private:
Log::trace(docKey + ", ws_sessions++: " + std::to_string(sessionsCount));
lock.unlock();
- Log::trace(docKey + ", ws_sessions++: " + std::to_string(sessionsCount));
// Wait until the client has connected with a prison socket.
waitBridgeCompleted(session);
@@ -402,13 +401,15 @@ private:
const std::string load = "load url=" + encodedFrom;
session->handleInput(load.data(), load.size());
- // Convert it to the requested format.
+ //FIXME: Check for security violations.
Path toPath(docBroker->getPublicUri().getPath());
toPath.setExtension(format);
const std::string toJailURL = "file://" + std::string(JAILED_DOCUMENT_ROOT) + toPath.getFileName();
std::string encodedTo;
URI::encode(toJailURL, "", encodedTo);
- std::string saveas = "saveas url=" + encodedTo + " format=" + format + " options=";
+
+ // Convert it to the requested format.
+ const auto saveas = "saveas url=" + encodedTo + " format=" + format + " options=";
session->handleInput(saveas.data(), saveas.size());
// Send it back to the client.
@@ -428,6 +429,10 @@ private:
Log::debug("Removing DocumentBroker for docKey [" + docKey + "].");
docBrokers.erase(docKey);
}
+ else
+ {
+ Log::error("Multiple sessions during conversion. " + std::to_string(sessionsCount) + " sessions remain.");
+ }
}
// Clean up the temporary directory the HTMLForm ctor created.
@@ -988,7 +993,10 @@ public:
auto session = std::make_shared<PrisonerSession>(sessionId, ws, docBroker);
// Connect the prison session to the client.
- docBroker->connectPeers(session);
+ if (!docBroker->connectPeers(session))
+ {
+ Log::warn("Failed to connect " + session->getName() + " to its peer.");
+ }
std::unique_lock<std::mutex> lock(AvailableChildSessionMutex);
AvailableChildSessions.emplace(sessionId, session);
More information about the Libreoffice-commits
mailing list