[Libreoffice-commits] online.git: 2 commits - loolwsd/DocumentBroker.cpp loolwsd/LOOLKit.cpp loolwsd/test
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Mon Nov 7 06:26:26 UTC 2016
loolwsd/DocumentBroker.cpp | 8 ++++----
loolwsd/LOOLKit.cpp | 31 +++++++++++++++++++++++--------
loolwsd/test/TileCacheTests.cpp | 14 --------------
loolwsd/test/helpers.hpp | 14 ++++++++++++++
4 files changed, 41 insertions(+), 26 deletions(-)
New commits:
commit f4d72d66e3676249581b7f69e89c01eecd6ce922
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Sat Nov 5 17:25:39 2016 -0400
loolwsd: move genRandomData to helpers
Change-Id: I1edafb41fefc07e64fa8625d2b88617079a327fa
Reviewed-on: https://gerrit.libreoffice.org/30622
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/test/TileCacheTests.cpp b/loolwsd/test/TileCacheTests.cpp
index 3618f19..ade2ae0 100644
--- a/loolwsd/test/TileCacheTests.cpp
+++ b/loolwsd/test/TileCacheTests.cpp
@@ -112,20 +112,6 @@ class TileCacheTests : public CPPUNIT_NS::TestFixture
void checkBlackTile(std::stringstream& tile);
- static
- std::vector<char> genRandomData(const size_t size)
- {
- std::vector<char> v(size);
- v.resize(size);
- auto data = v.data();
- for (size_t i = 0; i < size; ++i)
- {
- data[i] = static_cast<char>(Util::rng::getNext());
- }
-
- return v;
- }
-
public:
TileCacheTests()
: _uri(helpers::getTestServerURI())
diff --git a/loolwsd/test/helpers.hpp b/loolwsd/test/helpers.hpp
index 1a386ba..ace1f32 100644
--- a/loolwsd/test/helpers.hpp
+++ b/loolwsd/test/helpers.hpp
@@ -55,6 +55,20 @@
namespace helpers
{
inline
+std::vector<char> genRandomData(const size_t size)
+{
+ std::vector<char> v(size);
+ v.resize(size);
+ auto data = v.data();
+ for (size_t i = 0; i < size; ++i)
+ {
+ data[i] = static_cast<char>(Util::rng::getNext());
+ }
+
+ return v;
+}
+
+inline
std::vector<char> readDataFromFile(const std::string& filename)
{
std::ifstream ifs(Poco::Path(TDOC, filename).toString(), std::ios::binary);
commit 0305cf4819abd6681cc40cbbffff6f74f8a0c1e9
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Sat Nov 5 16:22:07 2016 -0400
loolwsd: more efficient child message forwarding
Change-Id: I60ab308b2f7d108ee9e4f2892fe3dda68f7f3201
Reviewed-on: https://gerrit.libreoffice.org/30621
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/DocumentBroker.cpp b/loolwsd/DocumentBroker.cpp
index 754b836..5d187b8 100644
--- a/loolwsd/DocumentBroker.cpp
+++ b/loolwsd/DocumentBroker.cpp
@@ -868,7 +868,7 @@ bool DocumentBroker::forwardToClient(const std::string& prefix, const std::vecto
auto data = payload.data() + index;
auto size = payload.size() - index;
const auto message = getAbbreviatedMessage(data, size);
- Log::trace("Forwarding payload to " + prefix + ' ' + message);
+ LOG_TRC("Forwarding payload to " << prefix << ' ' << message);
std::string name;
std::string sid;
@@ -884,17 +884,17 @@ bool DocumentBroker::forwardToClient(const std::string& prefix, const std::vecto
}
else
{
- Log::warn() << "Client session [" << sid << "] has no peer to forward message: " << message << Log::end;
+ LOG_WRN("Client session [" << sid << "] has no peer to forward message: " << message);
}
}
else
{
- Log::warn() << "Client session [" << sid << "] not found to forward message: " << message << Log::end;
+ LOG_WRN("Client session [" << sid << "] not found to forward message: " << message);
}
}
else
{
- Log::error("Failed to parse prefix of forward-to-client message: " + message);
+ LOG_ERR("Failed to parse prefix of forward-to-client message: " << prefix);
}
return false;
diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp
index acdc2e5..75f2f87 100644
--- a/loolwsd/LOOLKit.cpp
+++ b/loolwsd/LOOLKit.cpp
@@ -1117,9 +1117,22 @@ private:
bool forwardToChild(const std::string& prefix, const std::vector<char>& payload)
{
- std::string message(payload.data() + prefix.size(), payload.size() - prefix.size());
- Util::ltrim(message);
- Log::trace("Forwarding payload to " + prefix + ' ' + message);
+ assert(payload.size() > prefix.size());
+
+ // Remove the prefix and trim.
+ size_t index = prefix.size();
+ for ( ; index < payload.size(); ++index)
+ {
+ if (payload[index] != ' ')
+ {
+ break;
+ }
+ }
+
+ auto data = payload.data() + index;
+ auto size = payload.size() - index;
+ const auto abbrMessage = getAbbreviatedMessage(data, size);
+ LOG_TRC("Forwarding payload to " << prefix << ' ' << abbrMessage);
std::string name;
std::string sessionId;
@@ -1128,9 +1141,11 @@ private:
const auto it = _sessions.find(sessionId);
if (it != _sessions.end())
{
- if (message == "disconnect")
+ static const std::string disconnect("disconnect");
+ if (size == disconnect.size() &&
+ strncmp(data, disconnect.data(), disconnect.size()) == 0)
{
- Log::debug("Removing ChildSession " + sessionId);
+ LOG_DBG("Removing ChildSession " << sessionId);
_oldSessionIds[it->second->getViewId()] = UserInfo({it->second->getViewUserId(), it->second->getViewUserName()});
_sessions.erase(it);
return true;
@@ -1139,15 +1154,15 @@ private:
auto session = it->second;
if (session)
{
- return session->handleInput(message.data(), message.size());
+ return session->handleInput(data, size);
}
}
- Log::warn() << "Child session [" << sessionId << "] not found to forward message: " << message << Log::end;
+ LOG_WRN("Child session [" << sessionId << "] not found to forward message: " << abbrMessage);
}
else
{
- Log::error("Failed to parse prefix of forward-to-child message: " + message);
+ LOG_ERR("Failed to parse prefix of forward-to-child message: " << prefix);
}
return false;
More information about the Libreoffice-commits
mailing list