common/Util.cpp | 8 ++++++-- wsd/ClientSession.cpp | 2 ++ wsd/DocumentBroker.cpp | 16 ++++++++++++++++ wsd/DocumentBroker.hpp | 8 ++++---- wsd/LOOLWSD.cpp | 5 +++-- 5 files changed, 31 insertions(+), 8 deletions(-)
New commits: commit 5627c767abe256303c584d3663ada716c1c1d199 Author: Michael Meeks <[email protected]> AuthorDate: Fri Mar 15 10:51:19 2019 +0100 Commit: Michael Meeks <[email protected]> CommitDate: Fri Mar 15 11:27:38 2019 +0100 Anonymization: don't log when it is disabled. Also fix unexpected concatenation error in Poco::URI::encode generating eg. authorid=localhost0 xauthorid=localhost0localhost0 in the output. Change-Id: I560e47e31884eeb1c662f468436ed7541cfb082d diff --git a/common/Util.cpp b/common/Util.cpp index 0ca96021a..ab21e0c96 100644 --- a/common/Util.cpp +++ b/common/Util.cpp @@ -658,7 +658,9 @@ namespace Util if (plain.empty() || anonymized.empty()) return; - LOG_TRC("Anonymizing [" << plain << "] -> [" << anonymized << "]."); + auto &log = Log::logger(); + if (log.trace() && plain != anonymized) + LOG_TRC("Anonymizing [" << plain << "] -> [" << anonymized << "]."); std::unique_lock<std::mutex> lock(AnonymizedMutex); @@ -673,7 +675,9 @@ namespace Util const auto it = AnonymizedStrings.find(text); if (it != AnonymizedStrings.end()) { - LOG_TRC("Found anonymized [" << text << "] -> [" << it->second << "]."); + auto &log = Log::logger(); + if (log.trace() && text != it->second) + LOG_TRC("Found anonymized [" << text << "] -> [" << it->second << "]."); return it->second; } } diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index 6b61765ae..7f5938bb1 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -419,12 +419,14 @@ bool ClientSession::loadDocument(const char* /*buffer*/, int /*length*/, std::string encodedUserId; Poco::URI::encode(getUserId(), "", encodedUserId); oss << " authorid=" << encodedUserId; + encodedUserId = ""; Poco::URI::encode(LOOLWSD::anonymizeUsername(getUserId()), "", encodedUserId); oss << " xauthorid=" << encodedUserId; std::string encodedUserName; Poco::URI::encode(getUserName(), "", encodedUserName); oss << " author=" << encodedUserName; + encodedUserName = ""; Poco::URI::encode(LOOLWSD::anonymizeUsername(getUserName()), "", encodedUserName); oss << " xauthor=" << encodedUserName; } commit d8bb92cdcf83216ae5a56b8602cbd9f7c72b4975 Author: Michael Meeks <[email protected]> AuthorDate: Tue Mar 12 15:41:54 2019 +0100 Commit: Michael Meeks <[email protected]> CommitDate: Fri Mar 15 11:27:31 2019 +0100 Don't count convert-to connections vs. the document count. Change-Id: I350905fb98c503ae8f22a377e4af5cbcb9f3c52d diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index 3194d4f58..cc4068bc3 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -1847,8 +1847,24 @@ void DocumentBroker::getIOStats(uint64_t &sent, uint64_t &recv) } } +static std::atomic<size_t> NumConverters; + +size_t ConvertToBroker::getInstanceCount() +{ + return NumConverters; +} + +ConvertToBroker::ConvertToBroker(const std::string& uri, + const Poco::URI& uriPublic, + const std::string& docKey) + : DocumentBroker(uri, uriPublic, docKey) +{ + NumConverters++; +} + ConvertToBroker::~ConvertToBroker() { + NumConverters--; if (!_uriOrig.empty()) { // Remove source file and directory diff --git a/wsd/DocumentBroker.hpp b/wsd/DocumentBroker.hpp index bde8b24e4..134ad8b77 100644 --- a/wsd/DocumentBroker.hpp +++ b/wsd/DocumentBroker.hpp @@ -476,11 +476,11 @@ public: /// Construct DocumentBroker with URI and docKey ConvertToBroker(const std::string& uri, const Poco::URI& uriPublic, - const std::string& docKey) - : DocumentBroker(uri, uriPublic, docKey) - { - } + const std::string& docKey); virtual ~ConvertToBroker(); + + /// How many live conversions are running. + static size_t getInstanceCount(); }; #endif diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp index 1f0e4dc0a..b3f1bfaf3 100644 --- a/wsd/LOOLWSD.cpp +++ b/wsd/LOOLWSD.cpp @@ -254,8 +254,8 @@ inline void shutdownLimitReached(WebSocketHandler& ws) inline void checkSessionLimitsAndWarnClients() { #if !MOBILEAPP - - if (DocBrokers.size() > LOOLWSD::MaxDocuments || LOOLWSD::NumConnections >= LOOLWSD::MaxConnections) + size_t docBrokerCount = DocBrokers.size() - ConvertToBroker::getInstanceCount(); + if (docBrokerCount > LOOLWSD::MaxDocuments || LOOLWSD::NumConnections >= LOOLWSD::MaxConnections) { const std::string info = Poco::format(PAYLOAD_INFO_LIMIT_REACHED, LOOLWSD::MaxDocuments, LOOLWSD::MaxConnections); LOG_INF("Sending client 'limitreached' message: " << info); @@ -2948,6 +2948,7 @@ public: << "[ " << DocBrokers.size() << " ]:\n"; for (auto &i : DocBrokers) i.second->dumpState(os); + os << "Converter count: " << ConvertToBroker::getInstanceCount() << "\n"; Socket::InhibitThreadChecks = false; SocketPoll::InhibitThreadChecks = false; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
