From dc2346a7535c9a2c16726a2709703b46022b344c Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 4 Oct 2017 16:29:24 -0700 Subject: [PATCH] ircd::http: Cleanup error messages. --- ircd/http.cc | 69 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/ircd/http.cc b/ircd/http.cc index ca85369da..ef7a0f022 100644 --- a/ircd/http.cc +++ b/ircd/http.cc @@ -676,15 +676,22 @@ try } catch(const qi::expectation_failure &e) { - char buf[256]; - const auto rule(ircd::string(e.what_)); - fmt::snprintf(buf, sizeof(buf), - "I require a valid HTTP %s. You sent %zu invalid characters starting with `%s'.", - between(rule, "<", ">"), - ssize_t(e.last - e.first), - string_view{e.first, e.last}); + const auto rule + { + ircd::string(e.what_) + }; - throw error(code::BAD_REQUEST, buf); + throw error + { + code::BAD_REQUEST, fmt::snstringf + { + BUFSIZE, + "I require a valid HTTP %s. You sent %zu invalid characters starting with `%s'.", + between(rule, "<", ">"), + size_t(e.last - e.first), + string_view{e.first, e.last} + } + }; } ircd::http::line::response::response(const line &line) @@ -713,15 +720,22 @@ try } catch(const qi::expectation_failure &e) { - char buf[256]; - const auto rule(ircd::string(e.what_)); - fmt::snprintf(buf, sizeof(buf), - "I require a valid HTTP %s. You sent %zu invalid characters starting with `%s'.", - between(rule, "<", ">"), - ssize_t(e.last - e.first), - string_view{e.first, e.last}); + const auto rule + { + ircd::string(e.what_) + }; - throw error(code::BAD_REQUEST, buf); + throw error + { + code::BAD_REQUEST, fmt::snstringf + { + BUFSIZE, + "I require a valid HTTP %s. You sent %zu invalid characters starting with `%s'.", + between(rule, "<", ">"), + size_t(e.last - e.first), + string_view{e.first, e.last} + } + }; } ircd::http::line::line(parse::capstan &pc) @@ -938,15 +952,22 @@ try } catch(const qi::expectation_failure &e) { - char err[256]; - const auto rule(ircd::string(e.what_)); - fmt::snprintf(err, sizeof(err), - "I require a valid urlencoded %s. You sent %zu invalid chars starting with `%s'.", - between(rule, "<", ">"), - ssize_t(e.last - e.first), - string_view{e.first, e.last}); + const auto rule + { + ircd::string(e.what_) + }; - throw error(code::BAD_REQUEST, err); + throw error + { + code::BAD_REQUEST, fmt::snstringf + { + BUFSIZE, + "I require a valid urlencoded %s. You sent %zu invalid chars starting with `%s'.", + between(rule, "<", ">"), + size_t(e.last - e.first), + string_view{e.first, e.last} + } + }; } ircd::string_view