[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-1-0' - loolwsd/Storage.cpp
Pranav Kant
pranavk at collabora.co.uk
Fri Oct 7 10:23:48 UTC 2016
loolwsd/Storage.cpp | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
New commits:
commit 092fdb78bc7726321c99f14b570392373b6fabd2
Author: Pranav Kant <pranavk at collabora.co.uk>
Date: Wed Oct 5 13:44:38 2016 +0530
loolwsd: Also handle WOPI urls with spaces
URI::getPath() returns a _decoded_ path which was then being used
for the requests. This leads to failure for WOPI urls having
space in them.
Change-Id: I47bef643b09a919c56f9f0ec7b4dee8604dde089
Reviewed-on: https://gerrit.libreoffice.org/29536
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
(cherry picked from commit 2f59e19252650249f328b718a360c19e0c5a8e90)
diff --git a/loolwsd/Storage.cpp b/loolwsd/Storage.cpp
index 79c76e7..9459ccf 100644
--- a/loolwsd/Storage.cpp
+++ b/loolwsd/Storage.cpp
@@ -314,12 +314,12 @@ std::string WopiStorage::loadStorageFileToLocal()
// WOPI URI to download files ends in '/contents'.
// Add it here to get the payload instead of file info.
Poco::URI uriObject(_uri);
- const auto url = uriObject.getPath() + "/contents?" + uriObject.getQuery();
- Log::debug("Wopi requesting: " + url);
+ uriObject.setPath(uriObject.getPath() + "/contents");
+ Log::debug("Wopi requesting: " + uriObject.toString());
std::unique_ptr<Poco::Net::HTTPClientSession> psession(lcl_getHTTPClientSession(uriObject));
- Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, url, Poco::Net::HTTPMessage::HTTP_1_1);
+ Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, uriObject.getPathAndQuery(), Poco::Net::HTTPMessage::HTTP_1_1);
request.set("User-Agent", "LOOLWSD WOPI Agent");
psession->sendRequest(request);
@@ -342,7 +342,7 @@ std::string WopiStorage::loadStorageFileToLocal()
std::ostreambuf_iterator<char>(ofs));
const auto size = getFileSize(_jailedFilePath);
- Log::info() << "WOPI::GetFile downloaded " << size << " bytes from [" << _uri
+ Log::info() << "WOPI::GetFile downloaded " << size << " bytes from [" << uriObject.toString()
<< "] -> " << _jailedFilePath << ": "
<< response.getStatus() << " " << response.getReason() << Log::end;
@@ -356,12 +356,12 @@ bool WopiStorage::saveLocalFileToStorage()
const auto size = getFileSize(_jailedFilePath);
Poco::URI uriObject(_uri);
- const auto url = uriObject.getPath() + "/contents?" + uriObject.getQuery();
- Log::debug("Wopi posting: " + url);
+ uriObject.setPath(uriObject.getPath() + "/contents");
+ Log::debug("Wopi posting: " + uriObject.toString());
std::unique_ptr<Poco::Net::HTTPClientSession> psession(lcl_getHTTPClientSession(uriObject));
- Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, url, Poco::Net::HTTPMessage::HTTP_1_1);
+ Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, uriObject.getPathAndQuery(), Poco::Net::HTTPMessage::HTTP_1_1);
request.set("X-WOPIOverride", "PUT");
request.setContentType("application/octet-stream");
request.setContentLength(size);
@@ -378,7 +378,7 @@ bool WopiStorage::saveLocalFileToStorage()
Log::info("WOPI::PutFile response: " + oss.str());
const auto success = (response.getStatus() == Poco::Net::HTTPResponse::HTTP_OK);
Log::info() << "WOPI::PutFile uploaded " << size << " bytes from [" << _jailedFilePath << "]:"
- << "] -> [" << url << "]: "
+ << "] -> [" << uriObject.toString() << "]: "
<< response.getStatus() << " " << response.getReason() << Log::end;
return success;
More information about the Libreoffice-commits
mailing list