1
0
Fork 0
mirror of https://github.com/KingDuckZ/kamokan.git synced 2024-12-27 21:35:41 +00:00

Log raw pastie from POST and pastie before going to redis.

This is to hopefully track down the pastie corruption
bug that I'm only encountering on the outgoing server.
This commit is contained in:
King_DuckZ 2017-06-08 21:33:18 +01:00
parent b5b0db8b8d
commit 5f0ea56241
2 changed files with 20 additions and 0 deletions

View file

@ -20,6 +20,10 @@
#include "split_get_vars.hpp" #include "split_get_vars.hpp"
#include "escapist.hpp" #include "escapist.hpp"
#include "sanitized_utf8.hpp" #include "sanitized_utf8.hpp"
#include "spdlog.hpp"
#if defined(SPDLOG_DEBUG_ON)
# include "truncated_string.hpp"
#endif
#include <iostream> #include <iostream>
#include <iterator> #include <iterator>
#include <algorithm> #include <algorithm>
@ -80,6 +84,11 @@ namespace tawashi {
original_data = read_n(parSrc, input_len); original_data = read_n(parSrc, input_len);
Escapist houdini; Escapist houdini;
for (auto& itm : split_env_vars(original_data)) { for (auto& itm : split_env_vars(original_data)) {
#if defined(SPDLOG_DEBUG_ON)
if (itm.first == "pastie") {
spdlog::get("statuslog")->debug("Raw pastie from POST, size={}: \"{}\"", itm.second.size(), truncated_string(itm.second, 30));
}
#endif
std::string key(houdini.unescape_url(itm.first)); std::string key(houdini.unescape_url(itm.first));
std::string val(houdini.unescape_url(itm.second)); std::string val(houdini.unescape_url(itm.second));
map[std::move(key)] = std::move(val); map[std::move(key)] = std::move(val);

View file

@ -22,10 +22,12 @@
#include "tawashi_config.h" #include "tawashi_config.h"
#include "duckhandy/stringize.h" #include "duckhandy/stringize.h"
#include "spdlog.hpp" #include "spdlog.hpp"
#include "truncated_string.hpp"
#include <cassert> #include <cassert>
#include <ciso646> #include <ciso646>
#include <string> #include <string>
#include <utility> #include <utility>
#include <algorithm>
namespace tawashi { namespace tawashi {
namespace { namespace {
@ -104,6 +106,15 @@ namespace tawashi {
return make_submission_result(ErrorReasons::UserFlooding); return make_submission_result(ErrorReasons::UserFlooding);
} }
auto statuslog = spdlog::get("statuslog");
if (statuslog->should_log(spdlog::level::info)) {
statuslog->info(
"Submitting pastie of size {} to redis -> \"{}\"",
parText.size(),
truncated_string(parText, 30)
);
}
const auto next_id = redis.incr("paste_counter"); const auto next_id = redis.incr("paste_counter");
std::string token = num_to_token(next_id); std::string token = num_to_token(next_id);
assert(not token.empty()); assert(not token.empty());