// file : brep/search.cxx -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file #include #include #include #include using namespace std; namespace brep { void search:: handle (request& rq, response& rs) { MODULE_DIAG; chrono::seconds ma (60); rs.cookie ("Oh", " Ah\n\n", &ma, "/"); rs.cookie ("Hm", ";Yes", &ma); info << "handling search request from "; // << rq.client_ip (); ostream& o (rs.content (200, "text/html;charset=utf-8", true)); o << "Params:"; const name_values& ps (rq.parameters ()); if (ps.empty ()) throw invalid_request (422, "search parameters expected"); if (ps.size () > 100) fail << "too many parameters: " << ps.size () << info << "are you crazy to specify so many?"; level2 ([&]{trace << "search request with " << ps.size () << " params";}); for (const auto& p: ps) { o << "
\n" << p.name << "=" << p.value; } o << "
\nCookies:"; for (const auto& c: rq.cookies ()) { o << "
\n" << c.name << "=" << c.value << " "; } o << ""; } }