loleaflet/src/core/Socket.js     |    4 +++-
 loolwsd/LOOLWSD.cpp              |    3 +--
 loolwsd/MasterProcessSession.cpp |    6 +-----
 loolwsd/MasterProcessSession.hpp |    3 +++
 4 files changed, 8 insertions(+), 8 deletions(-)

New commits:
commit dc28273dcf5d8a9b73380f51e559c655e1c5c9a7
Author: Pranav Kant <[email protected]>
Date:   Tue Apr 5 00:09:54 2016 +0530

    Fixed a regression in opening password protected docs
    
    Change-Id: Ife378538c98f091e271e0c474fb271c513887774

diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 9ca9b53..8b939f7 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -113,6 +113,8 @@ L.Socket = L.Class.extend({
                        }
                }
                else if (textMsg.startsWith('error:') && command.errorCmd === 
'load') {
+                       this.close();
+
                        var errorKind = command.errorKind;
                        var passwordNeeded = false;
                        if (errorKind.startsWith('passwordrequired')) {
@@ -139,7 +141,7 @@ L.Socket = L.Class.extend({
                                        input: '<input name="password" 
type="password" required />',
                                        callback: L.bind(function(data) {
                                                this._map._docPassword = 
data.password;
-                                               this._onOpen();
+                                               this.initialize(this._map);
                                        }, this)
                                });
                                return;
diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 1798d32..9c29d63 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -523,11 +523,10 @@ private:
             "Client_ws_" + id
             );
 
-        if (docBroker->getSessionsCount() == 1 && !normalShutdown)
+        if (docBroker->getSessionsCount() == 1 && !normalShutdown && 
!session->_bLoadError)
         {
             //TODO: This isn't this simple. We need to wait for the 
notification
             // of save so Storage can persist the save (if necessary).
-            // In addition, we shouldn't issue save when opening of the doc 
fails.
             Log::info("Non-deliberate shutdown of the last session, saving the 
document before tearing down.");
             queue->put("uno .uno:Save");
         }
diff --git a/loolwsd/MasterProcessSession.cpp b/loolwsd/MasterProcessSession.cpp
index 432e751..4544063 100644
--- a/loolwsd/MasterProcessSession.cpp
+++ b/loolwsd/MasterProcessSession.cpp
@@ -169,12 +169,8 @@ bool MasterProcessSession::_handleInput(const char 
*buffer, int length)
                             errorKind == "passwordrequired:to-modify" ||
                             errorKind == "wrongpassword")
                         {
-                            _isDocPasswordProtected = true;
-                            // Reset docURL so that client can send another 
load request with password
-                            peer->_docURL = "";
-                            // disconnect 'ToPrisoner' after letting client 
know that password is required
                             forwardToPeer(buffer, length);
-                            LOOLSession::disconnect();
+                            peer->_bLoadError = true;
                             return false;
                         }
                     }
diff --git a/loolwsd/MasterProcessSession.hpp b/loolwsd/MasterProcessSession.hpp
index 7838fd4..da7105f 100644
--- a/loolwsd/MasterProcessSession.hpp
+++ b/loolwsd/MasterProcessSession.hpp
@@ -64,6 +64,9 @@ public:
     time_t _idleSaveTime;
     time_t _autoSaveTime;
 
+    // Raise this flag on ToClient from ToPrisoner to let ToClient know of 
load failures
+    bool _bLoadError = false;
+
  protected:
     bool invalidateTiles(const char *buffer, int length, 
Poco::StringTokenizer& tokens);
 
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to