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
