[Libreoffice-commits] online.git: wsd/LOOLWSD.cpp wsd/LOOLWSD.hpp
Michael Meeks (via logerrit)
logerrit at kemper.freedesktop.org
Mon Mar 16 18:37:01 UTC 2020
wsd/LOOLWSD.cpp | 58 ++++++++++++++++++++++++++++----------------------------
wsd/LOOLWSD.hpp | 4 +++
2 files changed, 33 insertions(+), 29 deletions(-)
New commits:
commit 4d9d769d950e6555de4392fb10c82efa53002611
Author: Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Mon Mar 16 16:19:37 2020 +0000
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Mon Mar 16 19:36:42 2020 +0100
Expose disk space and session checks via LOOLWSD class.
Change-Id: I7b135d325147694cc33946b34a29ab96b2e2b918
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/90577
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index ecceaca34..177360dbc 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -256,8 +256,31 @@ inline void shutdownLimitReached(const std::shared_ptr<ProtocolHandlerInterface>
}
#endif
-inline void checkSessionLimitsAndWarnClients()
+#if !MOBILEAPP
+/// Internal implementation to alert all clients
+/// connected to any document.
+void alertAllUsersInternal(const std::string& msg)
+{
+ std::lock_guard<std::mutex> docBrokersLock(DocBrokersMutex);
+
+ LOG_INF("Alerting all users: [" << msg << "]");
+
+ if (UnitWSD::get().filterAlertAllusers(msg))
+ return;
+
+ for (auto& brokerIt : DocBrokers)
+ {
+ std::shared_ptr<DocumentBroker> docBroker = brokerIt.second;
+ docBroker->addCallback([msg, docBroker](){ docBroker->alertAllUsers(msg); });
+ }
+}
+#endif
+
+} // end anonymous namespace
+
+void LOOLWSD::checkSessionLimitsAndWarnClients()
{
+#if !ENABLE_SUPPORT_KEY
#if !MOBILEAPP
ssize_t docBrokerCount = DocBrokers.size() - ConvertToBroker::getInstanceCount();
if (LOOLWSD::MaxDocuments < 10000 &&
@@ -276,29 +299,10 @@ inline void checkSessionLimitsAndWarnClients()
}
}
#endif
-}
-
-#if !MOBILEAPP
-/// Internal implementation to alert all clients
-/// connected to any document.
-void alertAllUsersInternal(const std::string& msg)
-{
- std::lock_guard<std::mutex> docBrokersLock(DocBrokersMutex);
-
- LOG_INF("Alerting all users: [" << msg << "]");
-
- if (UnitWSD::get().filterAlertAllusers(msg))
- return;
-
- for (auto& brokerIt : DocBrokers)
- {
- std::shared_ptr<DocumentBroker> docBroker = brokerIt.second;
- docBroker->addCallback([msg, docBroker](){ docBroker->alertAllUsers(msg); });
- }
-}
#endif
+}
-static void checkDiskSpaceAndWarnClients(const bool cacheLastCheck)
+void LOOLWSD::checkDiskSpaceAndWarnClients(const bool cacheLastCheck)
{
#if !MOBILEAPP
try
@@ -317,8 +321,6 @@ static void checkDiskSpaceAndWarnClients(const bool cacheLastCheck)
#endif
}
-}
-
/// Remove dead and idle DocBrokers.
/// The client of idle document should've greyed-out long ago.
/// Returns true if at least one is removed.
@@ -378,7 +380,7 @@ static int forkChildren(const int number)
if (number > 0)
{
- checkDiskSpaceAndWarnClients(false);
+ LOOLWSD::checkDiskSpaceAndWarnClients(false);
#ifdef KIT_IN_PROCESS
forkLibreOfficeKit(LOOLWSD::ChildRoot, LOOLWSD::SysTemplate, LOOLWSD::LoTemplate, LO_JAIL_SUBPATH, number);
@@ -2874,12 +2876,10 @@ private:
// Add and load the session.
docBroker->addSession(clientSession);
- checkDiskSpaceAndWarnClients(true);
-#if !ENABLE_SUPPORT_KEY
+ LOOLWSD::checkDiskSpaceAndWarnClients(true);
// Users of development versions get just an info
// when reaching max documents or connections
- checkSessionLimitsAndWarnClients();
-#endif
+ LOOLWSD::checkSessionLimitsAndWarnClients();
}
catch (const UnauthorizedRequestException& exc)
{
diff --git a/wsd/LOOLWSD.hpp b/wsd/LOOLWSD.hpp
index 166de2817..383263314 100644
--- a/wsd/LOOLWSD.hpp
+++ b/wsd/LOOLWSD.hpp
@@ -191,6 +191,10 @@ public:
/// child kit processes and cleans up DocBrokers.
static void doHousekeeping();
+ static void checkDiskSpaceAndWarnClients(const bool cacheLastCheck);
+
+ static void checkSessionLimitsAndWarnClients();
+
/// Close document with @docKey and a @message
static void closeDocument(const std::string& docKey, const std::string& message);
More information about the Libreoffice-commits
mailing list