mirror of
https://github.com/LibreOffice/online.git
synced 2025-07-29 12:01:08 +00:00
Revert "wsd: create a static function "parse""
This reverts commit fcfc257162
.
This commit is contained in:
@ -683,74 +683,124 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco::
|
|||||||
documentSigningDiv = "<div id=\"document-signing-bar\"></div>";
|
documentSigningDiv = "<div id=\"document-signing-bar\"></div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string lang;
|
enum class ParseState
|
||||||
std::locale locale;
|
{
|
||||||
|
None,
|
||||||
|
Subs,
|
||||||
|
L10n
|
||||||
|
};
|
||||||
|
|
||||||
|
std::string token;
|
||||||
std::ostringstream ostr;
|
std::ostringstream ostr;
|
||||||
|
std::stringstream varSubs, varL10n;
|
||||||
std::istringstream istr(preprocess);
|
std::istringstream istr(preprocess);
|
||||||
|
ParseState state = ParseState::None;
|
||||||
|
|
||||||
parse(locale, istr, ostr, [&](const std::string& var) {
|
getToken(istr, token);
|
||||||
bool result = true;
|
while (!token.empty())
|
||||||
if (var == "ACCESS_TOKEN")
|
{
|
||||||
|
if (token == "<%")
|
||||||
{
|
{
|
||||||
ostr << escapedAccessToken;
|
if (state == ParseState::None)
|
||||||
|
{
|
||||||
|
state = ParseState::Subs;
|
||||||
|
varSubs.str("");
|
||||||
|
varSubs.clear();
|
||||||
|
}
|
||||||
|
else ostr << token;
|
||||||
}
|
}
|
||||||
else if (var == "ACCESS_TOKEN_TTL")
|
else if (token == "%>")
|
||||||
{
|
{
|
||||||
ostr << tokenTtl;
|
if (state == ParseState::Subs)
|
||||||
}
|
{
|
||||||
else if (var == "ACCESS_HEADER")
|
std::string var = varSubs.str();
|
||||||
{
|
if (var == "ACCESS_TOKEN")
|
||||||
ostr << escapedAccessHeader;
|
{
|
||||||
}
|
ostr << escapedAccessToken;
|
||||||
else if (var == "HOST")
|
}
|
||||||
{
|
else if (var == "ACCESS_TOKEN_TTL")
|
||||||
ostr << host;
|
{
|
||||||
}
|
ostr << tokenTtl;
|
||||||
else if (var == "VERSION")
|
}
|
||||||
{
|
else if (var == "ACCESS_HEADER")
|
||||||
ostr << LOOLWSD_VERSION_HASH;
|
{
|
||||||
}
|
ostr << escapedAccessHeader;
|
||||||
else if (var == "SERVICE_ROOT")
|
}
|
||||||
{
|
else if (var == "HOST")
|
||||||
ostr << LOOLWSD::ServiceRoot;
|
{
|
||||||
}
|
ostr << host;
|
||||||
else if (var == "LOLEAFLET_LOGGING")
|
}
|
||||||
{
|
else if (var == "VERSION")
|
||||||
ostr << config.getString("loleaflet_logging", "false");
|
{
|
||||||
}
|
ostr << LOOLWSD_VERSION_HASH;
|
||||||
else if (var == "OUT_OF_FOCUS_TIMEOUT_SECS")
|
}
|
||||||
{
|
else if (var == "SERVICE_ROOT")
|
||||||
ostr << config.getString("per_view.out_of_focus_timeout_secs", "60");
|
{
|
||||||
}
|
ostr << LOOLWSD::ServiceRoot;
|
||||||
else if (var == "IDLE_TIMEOUT_SECS")
|
}
|
||||||
{
|
else if (var == "LOLEAFLET_LOGGING")
|
||||||
ostr << config.getString("per_view.idle_timeout_secs", "900");
|
{
|
||||||
}
|
ostr << config.getString("loleaflet_logging", "false");
|
||||||
else if (var == "DOCUMENT_SIGNING_DIV")
|
}
|
||||||
{
|
else if (var == "OUT_OF_FOCUS_TIMEOUT_SECS")
|
||||||
ostr << documentSigningDiv;
|
{
|
||||||
}
|
ostr << config.getString("per_view.out_of_focus_timeout_secs", "60");
|
||||||
else if (var == "DOCUMENT_SIGNING_URL")
|
}
|
||||||
{
|
else if (var == "IDLE_TIMEOUT_SECS")
|
||||||
ostr << documentSigningURL;
|
{
|
||||||
}
|
ostr << config.getString("per_view.idle_timeout_secs", "900");
|
||||||
else if (var == "BRANDING_CSS")
|
}
|
||||||
{
|
else if (var == "DOCUMENT_SIGNING_DIV")
|
||||||
ostr << brandCSS;
|
{
|
||||||
}
|
ostr << documentSigningDiv;
|
||||||
else if (var == "BRANDING_JS")
|
}
|
||||||
{
|
else if (var == "DOCUMENT_SIGNING_URL")
|
||||||
ostr << brandJS;
|
{
|
||||||
}
|
ostr << documentSigningURL;
|
||||||
else if (var == "LANG")
|
}
|
||||||
{
|
else if (var == "BRANDING_CSS")
|
||||||
if (lang != "en")
|
{
|
||||||
ostr << "?lang=" << lang;
|
ostr << brandCSS;
|
||||||
}
|
}
|
||||||
else result = false;
|
else if (var == "BRANDING_JS")
|
||||||
|
{
|
||||||
|
ostr << brandJS;
|
||||||
|
}
|
||||||
|
else ostr << var;
|
||||||
|
|
||||||
return result;
|
state = ParseState::None;
|
||||||
});
|
}
|
||||||
|
else ostr << token;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case ParseState::None:
|
||||||
|
ostr << token;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ParseState::Subs:
|
||||||
|
varSubs << token;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ParseState::L10n:
|
||||||
|
varL10n << token;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getToken(istr, token);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state == ParseState::Subs)
|
||||||
|
{
|
||||||
|
ostr << varSubs.str();
|
||||||
|
}
|
||||||
|
else if (state == ParseState::L10n)
|
||||||
|
{
|
||||||
|
ostr << varL10n.str();
|
||||||
|
}
|
||||||
|
|
||||||
const std::string mimeType = "text/html";
|
const std::string mimeType = "text/html";
|
||||||
|
|
||||||
@ -937,92 +987,4 @@ void FileServerRequestHandler::preprocessAdminFile(const HTTPRequest& request,co
|
|||||||
socket->send(oss.str());
|
socket->send(oss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileServerRequestHandler::parse(const std::locale& locale, std::istringstream& istr, std::ostringstream& ostr, const std::function<bool(const std::string&)>& funcSubs)
|
|
||||||
{
|
|
||||||
enum class ParseState
|
|
||||||
{
|
|
||||||
None,
|
|
||||||
Subs,
|
|
||||||
L10n
|
|
||||||
};
|
|
||||||
|
|
||||||
std::string token;
|
|
||||||
std::stringstream varSubs, varL10n;
|
|
||||||
ParseState state = ParseState::None;
|
|
||||||
|
|
||||||
getToken(istr, token);
|
|
||||||
while (!token.empty())
|
|
||||||
{
|
|
||||||
if (token == "<%")
|
|
||||||
{
|
|
||||||
if (state == ParseState::None)
|
|
||||||
{
|
|
||||||
state = ParseState::Subs;
|
|
||||||
varSubs.str("");
|
|
||||||
varSubs.clear();
|
|
||||||
}
|
|
||||||
else ostr << token;
|
|
||||||
}
|
|
||||||
else if (token == "_(\'")
|
|
||||||
{
|
|
||||||
if (state == ParseState::None)
|
|
||||||
{
|
|
||||||
state = ParseState::L10n;
|
|
||||||
varL10n.str("");
|
|
||||||
varL10n.clear();
|
|
||||||
}
|
|
||||||
else ostr << token;
|
|
||||||
}
|
|
||||||
else if (token == "\')")
|
|
||||||
{
|
|
||||||
if (state == ParseState::L10n)
|
|
||||||
{
|
|
||||||
LOG_INF(locale.name());
|
|
||||||
//ostr << '\'' << boost::locale::gettext(varL10n.str().c_str(), locale) << '\'';
|
|
||||||
state = ParseState::None;
|
|
||||||
}
|
|
||||||
else ostr << token;
|
|
||||||
}
|
|
||||||
else if (token == "%>")
|
|
||||||
{
|
|
||||||
if (state == ParseState::Subs)
|
|
||||||
{
|
|
||||||
std::string var = varSubs.str();
|
|
||||||
if (!funcSubs(var))
|
|
||||||
ostr << var;
|
|
||||||
|
|
||||||
state = ParseState::None;
|
|
||||||
}
|
|
||||||
else ostr << token;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (state)
|
|
||||||
{
|
|
||||||
case ParseState::None:
|
|
||||||
ostr << token;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ParseState::Subs:
|
|
||||||
varSubs << token;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ParseState::L10n:
|
|
||||||
varL10n << token;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getToken(istr, token);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state == ParseState::Subs)
|
|
||||||
{
|
|
||||||
ostr << varSubs.str();
|
|
||||||
}
|
|
||||||
else if (state == ParseState::L10n)
|
|
||||||
{
|
|
||||||
ostr << varL10n.str();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||||
|
@ -21,7 +21,6 @@ class FileServerRequestHandler
|
|||||||
static std::string getRequestPathname(const Poco::Net::HTTPRequest& request);
|
static std::string getRequestPathname(const Poco::Net::HTTPRequest& request);
|
||||||
|
|
||||||
static void getToken(std::istringstream&, std::string&);
|
static void getToken(std::istringstream&, std::string&);
|
||||||
static void parse(const std::locale&, std::istringstream&, std::ostringstream&, const std::function<bool(const std::string&)>&);
|
|
||||||
static void preprocessFile(const Poco::Net::HTTPRequest& request, Poco::MemoryInputStream& message, const std::shared_ptr<StreamSocket>& socket);
|
static void preprocessFile(const Poco::Net::HTTPRequest& request, Poco::MemoryInputStream& message, const std::shared_ptr<StreamSocket>& socket);
|
||||||
static void preprocessAdminFile(const Poco::Net::HTTPRequest& request, const std::shared_ptr<StreamSocket>& socket);
|
static void preprocessAdminFile(const Poco::Net::HTTPRequest& request, const std::shared_ptr<StreamSocket>& socket);
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user