[Libreoffice-commits] online.git: common/Util.cpp common/Util.hpp wsd/FileServer.cpp wsd/LOOLWSD.cpp
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Mon May 20 09:53:31 UTC 2019
common/Util.cpp | 11 +++++++++++
common/Util.hpp | 3 +++
wsd/FileServer.cpp | 11 ++++++-----
wsd/LOOLWSD.cpp | 16 ++++++++--------
4 files changed, 28 insertions(+), 13 deletions(-)
New commits:
commit 8e34705fe22f7efaf44619cf40685217e2216d4b
Author: DarkByt31 <avihs.29 at gmail.com>
AuthorDate: Mon May 20 11:10:12 2019 +0530
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Mon May 20 11:53:13 2019 +0200
tdf#107038 Poco::DateTimeFormatter with Util::getHttpTimeNow()
Added a function to Util to get current time in HTTP
format using std::chrono.
Change-Id: I9e7a732f585c1758c9348c450a01713a66f1e7b7
Reviewed-on: https://gerrit.libreoffice.org/72585
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
Tested-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/common/Util.cpp b/common/Util.cpp
index 9acd82735..9185e04c4 100644
--- a/common/Util.cpp
+++ b/common/Util.cpp
@@ -728,6 +728,17 @@ namespace Util
return base + Util::anonymize(filename) + ext + params;
}
+
+ std::string getHttpTimeNow()
+ {
+ char time_now[50];
+ std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
+ std::time_t now_c = std::chrono::system_clock::to_time_t(now);
+ std::tm now_tm = *std::gmtime(&now_c);
+ strftime(time_now, 50, "%a, %d %b %Y %T", &now_tm);
+
+ return time_now;
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/common/Util.hpp b/common/Util.hpp
index d493cdf74..7c967784c 100644
--- a/common/Util.hpp
+++ b/common/Util.hpp
@@ -858,6 +858,9 @@ int main(int argc, char**argv)
_value = value;
}
};
+
+ //// Return current time in HTTP format.
+ std::string getHttpTimeNow();
} // end namespace Util
#endif
diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index 07ee9c4cd..1e549018c 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -46,6 +46,7 @@
#include "LOOLWSD.hpp"
#include <Log.hpp>
#include <Protocol.hpp>
+#include <Util.hpp>
using Poco::Net::HTMLForm;
using Poco::Net::HTTPBasicCredentials;
@@ -369,7 +370,7 @@ void FileServerRequestHandler::handleRequest(const HTTPRequest& request, Poco::M
}
response.set("User-Agent", HTTP_AGENT_STRING);
- response.set("Date", Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT));
+ response.set("Date", Util::getHttpTimeNow());
bool gzip = request.hasToken("Accept-Encoding", "gzip");
const std::string *content;
@@ -438,7 +439,7 @@ void FileServerRequestHandler::sendError(int errorCode, const Poco::Net::HTTPReq
std::ostringstream oss;
oss << "HTTP/1.1 " << errorCode << "\r\n"
<< "Content-Type: text/html charset=UTF-8\r\n"
- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Date: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< extraHeader
<< "\r\n";
@@ -659,8 +660,8 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco::
std::ostringstream oss;
oss << "HTTP/1.1 200 OK\r\n"
- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
- << "Last-Modified: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Date: " << Util::getHttpTimeNow() << "\r\n"
+ << "Last-Modified: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Cache-Control:max-age=11059200\r\n"
<< "ETag: \"" LOOLWSD_VERSION_HASH "\"\r\n"
@@ -829,7 +830,7 @@ void FileServerRequestHandler::preprocessAdminFile(const HTTPRequest& request,co
response.add("Referrer-Policy", "no-referrer");
response.add("X-Content-Type-Options", "nosniff");
response.set("User-Agent", HTTP_AGENT_STRING);
- response.set("Date", Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT));
+ response.set("Date", Util::getHttpTimeNow());
response.setContentType("text/html");
response.setChunkedTransferEncoding(false);
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 79a908fb4..2bb4b37dc 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -2034,7 +2034,7 @@ private:
LOG_ERR("Looks like SSL/TLS traffic on plain http port");
std::ostringstream oss;
oss << "HTTP/1.1 400\r\n"
- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Date: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Content-Length: 0\r\n"
<< "\r\n";
@@ -2133,7 +2133,7 @@ private:
// Bad request.
std::ostringstream oss;
oss << "HTTP/1.1 400\r\n"
- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Date: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Content-Length: 0\r\n"
<< "\r\n";
@@ -2148,7 +2148,7 @@ private:
// Bad request.
std::ostringstream oss;
oss << "HTTP/1.1 400\r\n"
- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Date: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: LOOLWSD WOPI Agent\r\n"
<< "Content-Length: 0\r\n"
<< "\r\n";
@@ -2197,7 +2197,7 @@ private:
std::ostringstream oss;
oss << "HTTP/1.1 200 OK\r\n"
- << "Last-Modified: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Last-Modified: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Content-Length: " << responseString.size() << "\r\n"
<< "Content-Type: " << mimeType << "\r\n"
@@ -2241,7 +2241,7 @@ private:
// TODO: Refactor this to some common handler.
std::ostringstream oss;
oss << "HTTP/1.1 200 OK\r\n"
- << "Last-Modified: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Last-Modified: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Content-Length: " << xml.size() << "\r\n"
<< "Content-Type: text/xml\r\n"
@@ -2263,7 +2263,7 @@ private:
std::ostringstream oss;
oss << "HTTP/1.1 200 OK\r\n"
- << "Last-Modified: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Last-Modified: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Content-Length: " << capabilities.size() << "\r\n"
<< "Content-Type: application/json\r\n"
@@ -2285,7 +2285,7 @@ private:
std::ostringstream oss;
oss << "HTTP/1.1 200 OK\r\n"
- << "Last-Modified: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Last-Modified: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
<< "Content-Length: " << responseString.size() << "\r\n"
<< "Content-Type: " << mimeType << "\r\n"
@@ -2345,7 +2345,7 @@ private:
LOG_TRC("Conversion not allowed from this address");
std::ostringstream oss;
oss << "HTTP/1.1 403\r\n"
- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+ << "Date: " << Util::getHttpTimeNow() << "\r\n"
<< "User-Agent: " << HTTP_AGENT_STRING << "\r\n"
<< "Content-Length: 0\r\n"
<< "\r\n";
More information about the Libreoffice-commits
mailing list