1
0
Fork 0
mirror of https://github.com/KingDuckZ/kamokan.git synced 2024-11-27 00:43:47 +00:00

Fix the bug with the pastie token being invalid.

REQUEST_URI would return "ba"?cpp for example, but
the code expects just "ba".
This commit is contained in:
King_DuckZ 2017-06-06 19:55:22 +01:00
parent e44611301c
commit df1afc7616
4 changed files with 24 additions and 1 deletions

View file

@ -249,5 +249,11 @@ namespace cgi {
assert(m_skip_path_info <= path.size());
return boost::string_ref(path).substr(m_skip_path_info);
}
boost::string_ref Env::path_info_relative() const {
const std::string& path = m_cgi_env[CGIVars::PATH_INFO];
assert(m_skip_path_info <= path.size());
return boost::string_ref(path).substr(m_skip_path_info);
}
} //namespace cgi
} //namespace tawashi

View file

@ -71,6 +71,7 @@ namespace tawashi {
GetMapType query_string_split() const a_pure;
const SplitMime& content_type_split() const a_pure;
boost::string_ref request_uri_relative() const;
boost::string_ref path_info_relative() const;
std::ostream& print_all (std::ostream& parStream, const char* parNewline) const;

View file

@ -75,7 +75,7 @@ namespace tawashi {
}
void PastieResponse::on_mustache_prepare (mstch::map& parContext) {
boost::string_ref token = cgi_env().request_uri_relative();
boost::string_ref token = cgi_env().path_info_relative();
boost::optional<std::string> pastie = this->storage().retrieve_pastie(token);
if (not pastie) {

View file

@ -128,6 +128,22 @@ namespace tawashi {
opt_string_list pastie_reply = m_redis->hmget(parToken, "pastie");
opt_string pastie = (pastie_reply and not pastie_reply->empty() ? (*pastie_reply)[0] : opt_string());
#if defined(SPDLOG_DEBUG_ON)
{
auto statuslog = spdlog::get("statuslog");
if (pastie) {
statuslog->debug("Retrieving pastie with token \"{}\" gave a result of size {}",
std::string(parToken.data(), parToken.size()),
pastie->size()
);
}
else {
statuslog->debug("Retrieving pastie with token \"{}\" gave no results",
std::string(parToken.data(), parToken.size())
);
}
}
#endif
return pastie;
}