[Libreoffice-commits] online.git: loolwsd/LOOLWSD.cpp loolwsd/LOOLWSD.hpp loolwsd/MasterProcessSession.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Fri Mar 4 03:05:01 UTC 2016
loolwsd/LOOLWSD.cpp | 1 -
loolwsd/LOOLWSD.hpp | 24 +++++++++++++-----------
loolwsd/MasterProcessSession.cpp | 5 +++--
3 files changed, 16 insertions(+), 14 deletions(-)
New commits:
commit c980ece8bcca0bf8c6c569a9db37b085022952e5
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Thu Mar 3 21:00:57 2016 -0500
loolwsd: preparing for wopi storage
Change-Id: Iae1bd042d84603cf81115789df40f50e8dc20d16
Reviewed-on: https://gerrit.libreoffice.org/22884
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 8ad52d7..ad5726b 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -103,7 +103,6 @@ DEALINGS IN THE SOFTWARE.
#include "LOOLWSD.hpp"
#include "MasterProcessSession.hpp"
#include "QueueHandler.hpp"
-#include "Storage.hpp"
#include "Util.hpp"
using namespace LOOLProtocol;
diff --git a/loolwsd/LOOLWSD.hpp b/loolwsd/LOOLWSD.hpp
index 696ca3a..ba11e68 100644
--- a/loolwsd/LOOLWSD.hpp
+++ b/loolwsd/LOOLWSD.hpp
@@ -23,6 +23,7 @@
#include <Poco/Process.h>
#include "Auth.hpp"
+#include "Storage.hpp"
#include "Common.hpp"
#include "Util.hpp"
@@ -34,8 +35,8 @@ public:
static
std::shared_ptr<DocumentURI> create(const std::string& url,
- const std::string& jailRoot,
- const std::string& childId)
+ const std::string& jailRoot,
+ const std::string& childId)
{
// TODO: Sanitize the url and limit access!
auto uriPublic = Poco::URI(url);
@@ -52,16 +53,17 @@ public:
// The URL is the publicly visible one, not visible in the chroot jail.
// We need to map it to a jailed path and copy the file there.
+
+ // chroot/jailId/user/doc
+ const auto jailedDocRoot = Poco::Path(jailRoot, JailedDocumentRoot);
+
+ // chroot/jailId/user/doc/childId
+ const auto docPath = Poco::Path(jailedDocRoot, childId);
+ Poco::File(docPath).createDirectories();
+
auto uriJailed = uriPublic;
if (uriPublic.isRelative() || uriPublic.getScheme() == "file")
{
- // chroot/jailId/user/doc
- const auto jailedDocRoot = Poco::Path(jailRoot, JailedDocumentRoot);
-
- // chroot/jailId/user/doc/childId
- const auto docPath = Poco::Path(jailedDocRoot, childId);
- Poco::File(docPath).createDirectories();
-
const auto filename = Poco::Path(uriPublic.getPath()).getFileName();
// chroot/jailId/user/doc/childId/file.ext
@@ -113,8 +115,8 @@ public:
private:
DocumentURI(const Poco::URI& uriPublic,
- const Poco::URI& uriJailed,
- const std::string& jailId) :
+ const Poco::URI& uriJailed,
+ const std::string& jailId) :
_uriPublic(uriPublic),
_uriJailed(uriJailed),
_jailId(jailId)
diff --git a/loolwsd/MasterProcessSession.cpp b/loolwsd/MasterProcessSession.cpp
index 126a12b..55ccdaf 100644
--- a/loolwsd/MasterProcessSession.cpp
+++ b/loolwsd/MasterProcessSession.cpp
@@ -451,10 +451,11 @@ bool MasterProcessSession::loadDocument(const char* /*buffer*/, int /*length*/,
try
{
- Poco::URI aUri(_docURL);
+ // Strip query params because we need unique URI (need a better solution!).
+ StringTokenizer tokens(_docURL, "?", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
// request new URL session
- const std::string aMessage = "request " + getId() + " " + _docURL + "\r\n";
+ const std::string aMessage = "request " + getId() + " " + tokens[0] + "\r\n";
Log::trace("MasterToBroker: " + aMessage.substr(0, aMessage.length()-2));
Util::writeFIFO(LOOLWSD::BrokerWritePipe, aMessage);
}
More information about the Libreoffice-commits
mailing list