[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-4-0' - loolwsd.xml.in wsd/DocumentBroker.cpp

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Thu Jun 13 08:08:27 UTC 2019


 loolwsd.xml.in         |    5 +++--
 wsd/DocumentBroker.cpp |   13 +++++++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

New commits:
commit e0015bda178325f989e5de72dd92bff0d6312a1c
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Wed Jun 5 17:24:05 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Thu Jun 13 10:08:08 2019 +0200

    wsd: allow disabling idlesave and autosave from configuration
    
    The code already assumed a signed integer, but the configuration advertised
    unsigned, standardize on signed.
    
    This way it doesn't matter if the "disable" value is zero or a negative
    number.
    
    (cherry picked from commit 3c927a9f325d74516e6671930de4eb01f2a9b056)
    
    Change-Id: I56632c8a36be01afefdc5f2a35e70bde945d69d3
    Reviewed-on: https://gerrit.libreoffice.org/73562
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>
    (cherry picked from commit 0cb985db98337b35ea1875f49223e8ae4d3a5e20)
    Reviewed-on: https://gerrit.libreoffice.org/73569
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/loolwsd.xml.in b/loolwsd.xml.in
index 296418a7c..be2b53da8 100644
--- a/loolwsd.xml.in
+++ b/loolwsd.xml.in
@@ -21,8 +21,9 @@
 	<redlining_as_comments desc="If true show red-lines as comments" type="bool" default="true">true</redlining_as_comments>
         <idle_timeout_secs desc="The maximum number of seconds before unloading an idle document. Defaults to 1 hour." type="uint" default="3600">3600</idle_timeout_secs>
         <!-- Idle save and auto save are checked every 30 seconds -->
-        <idlesave_duration_secs desc="The number of idle seconds after which document, if modified, should be saved. Defaults to 30 seconds." type="uint" default="30">30</idlesave_duration_secs>
-        <autosave_duration_secs desc="The number of seconds after which document, if modified, should be saved. Defaults to 5 minutes." type="uint" default="300">300</autosave_duration_secs>
+        <!-- They are disabled when the value is zero or negative. -->
+        <idlesave_duration_secs desc="The number of idle seconds after which document, if modified, should be saved. Defaults to 30 seconds." type="int" default="30">30</idlesave_duration_secs>
+        <autosave_duration_secs desc="The number of seconds after which document, if modified, should be saved. Defaults to 5 minutes." type="int" default="300">300</autosave_duration_secs>
         <limit_virt_mem_kb desc="The maximum virtual memory allowed to each document process. 0 for unlimited, 1700 min." type="uint">0</limit_virt_mem_kb>
         <limit_data_mem_kb desc="The maximum memory data segment allowed to each document process. 0 for unlimited." type="uint">0</limit_data_mem_kb>
         <limit_stack_mem_kb desc="The maximum stack size allowed to each document process. 0 for unlimited." type="uint">8000</limit_stack_mem_kb>
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 674fb2f4a..253774249 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -1022,9 +1022,18 @@ bool DocumentBroker::autoSave(const bool force)
 
         static const int idleSaveDurationMs = LOOLWSD::getConfigValue<int>("per_document.idlesave_duration_secs", 30) * 1000;
         static const int autoSaveDurationMs = LOOLWSD::getConfigValue<int>("per_document.autosave_duration_secs", 300) * 1000;
+        bool save = false;
+        // Zero or negative config value disables save.
         // Either we've been idle long enough, or it's auto-save time.
-        if (inactivityTimeMs >= idleSaveDurationMs ||
-            timeSinceLastSaveMs >= autoSaveDurationMs)
+        if (idleSaveDurationMs > 0 && inactivityTimeMs >= idleSaveDurationMs)
+        {
+            save = true;
+        }
+        if (autoSaveDurationMs > 0 && timeSinceLastSaveMs >= autoSaveDurationMs)
+        {
+            save = true;
+        }
+        if (save)
         {
             LOG_TRC("Sending timed save command for [" << _docKey << "].");
             sent = sendUnoSave(savingSessionId, /*dontTerminateEdit=*/true,


More information about the Libreoffice-commits mailing list